Java中的迭代器以及map容器的遍歷


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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM