迭代器概念

在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 的区别

  1. Iterator 可遍历 Set 和 List 集合; ListIterator 只能遍历 List。
  2. Iterator 只能单向遍历;ListIterator 可双向遍历(向前/后遍历)。
  3. ListIterator 继承自 Iterator 接口,添加新功能,比如添加一个元素、替换一个元素、获取前面或后面元素的索引位置。