当前位置: 首页 > 知识库问答 >
问题:

如何从ArrayList中删除所有非数值元素?

郗欣嘉
2023-03-14
    List list = new ArrayList();
    list.add(new Integer(100));
    list.add(new Double(3.14));
    list.add(new Long(21L));
    list.add(new Short("100"));
    list.add(new Double(5.1));
    list.add("Kitty");
    list.add(new Integer(100));
    list.add(new Object());
    list.add("Snoopy");
    list.add(new BigInteger("1000"));

哦,我想这是一个很简单的问题...我只想从arraylist中删除非数字元素,只保留数字元素,我想这与java.lang.Number有关。

谢谢师父的指导

祝你有一个美好快乐的一天

共有2个答案

翁阳曜
2023-03-14

这应该适用于任何版本的Java。

Iterator<Object> it = list.iterator();
while (it.hasNext()) {
    if (!(it.next() instanceof Number)) {
        it.remove();
    }
}
System.out.println(list);

印刷品

[100, 3.14, 21, 100, 5.1, 100, 1000]
万乐逸
2023-03-14
list.removeIf(e -> !(e instanceof Number));

虽然在没有指定泛型类型的情况下使用List/ArrayList并在其中存储不同的类型对象是一个坏主意。

 类似资料:
  • 问题内容: 我尝试这样的循环 但这不是很好。谁能建议我一个更好的解决方案? 一些有用的基准可以做出更好的决策: While循环,For循环和迭代器性能测试 问题答案: 尝试: 阅读Java API 。该代码将抛出不可变的列表(例如使用创建的);有关更多详细信息,请参见此答案。

  • 问题内容: 我正在使用,我想删除所有出现的特定元素。 它仅删除第一次出现的事件。但是我希望所有列表都被删除,因为我希望列表仅保留值“ second”。通过谷歌搜索发现,可以通过创建新列表并调用来实现。但是是否可以在不创建新列表的情况下删除所有出现的内容,或者是否有可用的API来实现它? 问题答案:

  • 我使用的是,我希望删除所有出现的特定元素。 它只删除了第一次出现的情况。但是我希望在我希望list仅用值“second”省略。我通过谷歌搜索发现,可以通过创建新列表并调用来实现。但是,是否有可能在不创建新列表的情况下删除所有事件,或者是否有任何可用的API来实现它?

  • 问题内容: 我有ArrayList,我要从中删除具有特定值的元素… 例如 我知道我们可以遍历arraylist和.remove()方法来删除元素,但是我不知道如何在迭代时做到这一点。如何删除具有“ acbd”值的元素,即第二个元素? 问题答案: 在您的情况下,无需遍历列表,因为您知道要删除哪个对象。您有几种选择。首先,您可以按索引删除对象(因此,如果您知道,该对象是第二个列表元素): 然后,您可以

  • 问题内容: 如何从ArrayList中删除重复的元素? 问题答案: 如果你不想在中添加重复项,则应考虑为什么要使用允许重复项的。删除重复元素的最简单方法是将内容添加到中(不允许重复),然后将其添加Set回中ArrayList: 当然,这会破坏中的元素顺序。

  • 问题内容: 基本上,我正在做一些数据分析。我以numpy.ndarray的形式读取数据集,但缺少了某些值(要么只是不在那里,要么就是被写为“ ”的字符串)。 我想清除包含这样任何条目的所有行。我该如何用一个numpy的ndarray? 问题答案: 并将其重新分配给。 说明:返回一个相似的阵列,其中,在其他地方。降低了阵列与逻辑对整个行,操作反相并从原始数组只选择行,其具有括号内。