假设我有一个包含以下元素的数组:
List<Object> objects = new ArrayList<>();
objects.add(1);
objects.add("one");
objects.add("two");
objects.add(new Object());
objects.add(2);
Run Code Online (Sandbox Code Playgroud)
删除同一类别的某些对象有减少的方法吗?
例如,如果我只想删除字符串,我知道我可以这样做:
for (Iterator<Object> it = objects.iterator(); it.hasNext();){
if(it.next() instanceof String) {
it.remove();
}
}
Run Code Online (Sandbox Code Playgroud)
但这是最简单的方法吗?我想我可以做到,java-8但我不太确定.谢谢!
在Java 8中,您可以使用Collection.removeIf():
objects.removeIf(obj -> obj instanceof String);
Run Code Online (Sandbox Code Playgroud)
它仍然是O(n),但它更具可读性.