Iterator是一个接口,集合的迭代器
方法 boolean hasNext() 迭代器中还存在元素返回true
E next() 返回迭代器中下一个元素 (只能单向移动)
default void remove() 移除迭代器当前元素(iterator的remove方法是在迭代过程中删除元素的唯一安全方法,使用for循环等普通手段遍历过程中删除集合元素会抛出异常,iterator在每次next()过程中只允许调用一次remove()方法,调用一次以上会抛出异常)
default void forEachRemaining(Consumer<? super E> action) 对迭代器中的剩余元素进行操作
forEachRemaining eg:
Iterator<String> iter = list.iterator();
iter.forEachRemaining(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});
//iter.forEachRemaining(ele -> System.out.println(ele));
//输出结果为上一次迭代剩余的全部元素,如果迭代器中没有剩余元素将不会有任何操作被执行
List<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
list.add("eee");
Iterator<String> iter = list.iterator();
while (iter.hasNext()){
String str = iter.next();
System.out.println(str);
if ("bbb".equals(str)){
iter.remove();
}
}
System.out.println(list);
输出结果:
aaa
bbb
ccc
ddd
eee
[aaa, ccc, ddd, eee]