在多个类的数组中从同一个类中删除对象的简洁方法

时间:2015-07-24 23:32:30

标签: java

假设我有一个包含以下元素的数组:

List<Object> objects = new ArrayList<>();
objects.add(1);
objects.add("one");
objects.add("two");
objects.add(new Object());
objects.add(2);

删除同一类别的某些对象有减少的方法吗?

例如,如果我只想删除字符串,我知道我可以这样做:

for (Iterator<Object> it = objects.iterator(); it.hasNext();){
    if(it.next() instanceof String) {
        it.remove();
    }
}

但这是最简单的方法吗?我想我可以用java-8来做,但我不太确定。谢谢!

1 个答案:

答案 0 :(得分:6)

在Java 8中,您可以使用Collection.removeIf()

objects.removeIf(obj -> obj instanceof String);

它仍然是O(n),但它更具可读性。