Iterator和ListIterator的区别
- Iterator可用来遍历Set和List集合,但是ListIterator只能用来遍历List。
- Iterator对集合只能是前向遍历,ListIterator即可以前向也可以后向。
- ListIterator实现了Iterator接口,并包含其他的功能,比如:增加元素、替换元素、获取前一个和后一个元素的索引等。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
public class ListTest {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("北京");
list.add("上海");
list.add("广州");
list.add("深圳");
System.out.println("List: " + list);
// Get the list iterator
ListIterator<String> iterator = list.listIterator();
while (iterator.hasNext()) {
int index = iterator.nextIndex();
String element = iterator.next();
System.out.println("Index=" + index + ", Element=" + element);
}
// Reuse the iterator to iterate from the end to the beginning
while (iterator.hasPrevious()) {
int index = iterator.previousIndex();
String element = iterator.previous();
System.out.println("Index=" + index + ", Element=" + element);
}
List<String> synchronizedList = Collections.synchronizedList(list);
synchronizedList.add("杭州");
synchronizedList.add("苏州");
synchronizedList.forEach(System.out::println);
}
}
|
参考:https://zhuanlan.zhihu.com/p/190173894