假设我有一个包含以下元素的数组:
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
来做,但我不太确定。谢谢!
答案 0 :(得分:6)
在Java 8中,您可以使用Collection.removeIf()
:
objects.removeIf(obj -> obj instanceof String);
它仍然是O(n),但它更具可读性。