Iterator 接口中有一个删除的方法:
default void remove() {
throw new UnsupportedOperationException("remove");
}
注意:不要在使用 Iterator 迭代器迭代元素的时候,调用 Collection 的 remove(xxx) 方法,否则会报 java.util.ConcurrentModificationException 异常或出现其他不确定的行为。
package com.github.collection1.demo3;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/**
* @author maxiaoke.com
* @version 1.0
*/
public class Test {
public static void main(String[] args) {
Collection<Integer> collection = new ArrayList<>();
collection.add(1);
collection.add(2);
collection.add(3);
collection.add(4);
System.out.println("原来集合中的元素 = " + collection); // 原来集合中的元素 = [1, 2, 3, 4]
for (Iterator<Integer> iterator = collection.iterator(); iterator.hasNext();) {
Integer ele = iterator.next();
if (ele % 2 == 0) {
iterator.remove();
}
}
System.out.println("后来集合中的元素 = " + collection); // 后来集合中的元素 = [1, 3]
}
}