迭代器概念
在Java中迭代器iterator不是集合而是一种访问集合的方法。
迭代器有3种方法
- iterator.next():获取下一个元素
- iterator.remove():删除元素
- iterator.hasNext():判断是否还存在元素
迭代器的简单例子
List<Integer> list = new ArrayList<>();
for (int i=1;i<10;i++) {
list.add(i);
}
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
//iterator.next()获取迭代的元素
if (iterator.next() == 5) {
iterator.remove();
}
}
System.out.println(list);
输出
[1, 2, 3, 4, 6, 7, 8, 9]
上面的例子中通过迭代器删除了元素5.
Iterator 和 ListIterator 的区别
- Iterator 可遍历 Set 和 List 集合; ListIterator 只能遍历 List。
- Iterator 只能单向遍历;ListIterator 可双向遍历(向前/后遍历)。
- ListIterator 继承自 Iterator 接口,添加新功能,比如添加一个元素、替换一个元素、获取前面或后面元素的索引位置。