<分区>
我经常遇到必须迭代 ArrayList
并希望根据任何条件从中创建子集的情况。
从性能的角度来看:对于要删除的元素,是使用迭代器和 iterator.remove()
更好,还是应该将这些元素添加到新列表?
for (Iterator<Object> it = list.iterator(); it.hasNext(); ) {
Object item = it.next();
if (!conditionMatches(item)) {
it.remove();
}
}
或
List<Object> newList = new ArrayList<>();
for (Object item : list) {
it (contitionMatches(item)) {
newList.add(item);
}
}