疊代器 Iterator
2016-5-7
可以這樣說,疊代器統一了對容器的通路方式。
考慮這樣的情景:原本是對着List編碼,但是後來發現需要把相同的代碼用于Set。我們需要一種不關心容器類型
而能夠通用的容器通路方法。
Iterator模式是用于周遊集合類的标準通路方法。它可以把通路邏輯從不同類型的集合類中抽象出來,進而避免向用戶端暴露集合的内部結構。
疊代器是一個對象,它的工作是周遊并選中序列中的對象,而用戶端程式員不必知道或關心該序列底層的結構。
能将周遊序列的操作與序列底層的機構分離。
而且,建立疊代器的代價很小。
List<Integer> list = new LinkedList<>();
for (int i = 1; i < 6; i++) {
list.add(i);
}
Iterator iterator = list.iterator();
System.out.println("iterator 本身: " + iterator);
System.out.println(iterator.next());
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
輸出:
iterator 本身: java.util.LinkedList$ListItr@1540e19d
1
2 3 4 5