public static void testIterator() {
//創建一個列表
List<Integer> list = new ArrayList<Integer>();
list.add(4); //添加元素
list.add(3);
list.add(7);
//返回一個迭代器,並遍歷列表中的元素
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
Integer value = iterator.next();
System.out.print(value + " ");
}
System.out.println();
//返回ListIterator迭代器並從后往前遍歷列表的元素
ListIterator<Integer> listIterator = list.listIterator(list.size());
System.out.println("ListIterator:");
while (listIterator.hasPrevious()) {
Integer value = listIterator.previous();
System.out.print(value + " ");
}
System.out.println();
}
Java中的List接口及其實現類可以通過iterator()返回Iterator,或通過listIterator()和listIterator(int index) 返回ListIterator。
Iterator和ListIterator都是迭代器,ListIterator繼承自Iterator。Iterator只能對列表進行遍歷,且只能從前往后遍歷,ListIterator可以修改列表,且可以選擇往前或往后遍歷。
java中map容器的遍歷(可分別利用keySet或entrySet):
方法一:keySet遍歷key+value:
Iterator<String> iter = map.keySet().iterator();
while (iter.hasNext()) {
key = iter.next();
value = map.get(key);
}
方法二:entrySet遍歷key+value:
Iterator<Entry<String, String>> iter = map.entrySet().iterator();
Entry<String, String> entry;
while (iter.hasNext()) {
entry = iter.next();
key = entry.getKey();
value = entry.getValue();
}
迭代器小結:C++中通過容器對象的begin或end方法來獲取到迭代器,其迭代器的含義是一個指針,指向容器中的元素;而java中的迭代器是一個對象,通過容器的iterator()方法得到容器的迭代器,之后通過迭代器對象的方法hasNext()來獲取到容器的指向。
[參考] (https://blog.csdn.net/sszgg2006/article/details/49148189)