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)