淺談Java迭代器

時間最考驗人發表於2021-08-14

迭代器Iterator

概述:

迭代器(Iterator):它不是一個容器,它是一種用於訪問容器的方法,可用於迭代 List、Set和Map等容器。

迭代:一個一個的往外拿。

作用:幫我們遍歷或者拿到容器裡邊的資料。

常用操作:

  1. next() 下一個

  2. hasNext() 判斷是否存在下一個元素

  3. remove() 刪除元素

遍歷List、Set和Map:

1. List的遍歷:

List list = new ArrayList();

list.add("小明");
list.add("小紅");
list.add("小藍");
list.add("小綠");

【方法一】

for (int i = 0; i < list.size(); i++) {
    String s = (String) list.get(i);// 強轉
    System.out.println(s);
}

【方法二】

Iterator it = list.iterator(); // 建立一個List的迭代器

while(it.hasNext()){// 判斷有沒有下一個元素
   String s = (String) it.next(); //也要強轉
    System.out.println(s);
}

注:迭代器是一次性的東西,用完了,拿完了再去用就會報錯!

2. Set的遍歷:

Set set = new HashSet();
set.add("小明");
set.add("小紅");
set.add("小藍");
set.add("小綠");

Iterator it = set.iterator();// 創造一個Set迭代器

while(it.hasNext()){
     String s = (String) it.next();// 強轉
     System.out.println(s);
      }

3. Map的遍歷:

Map map = new HashMap();

map.put("明明","小明");
map.put("紅紅","小紅");
map.put("藍藍","小藍");
map.put("綠綠","小綠");

【方法一】

// 迴圈遍歷拿到它的每一項(key和value)———— 拿到key就能拿到value————KeySet()

Set set = map.keySet();// 拿到所有的key
Iterator it = set.iterator();// 放到迭代器
while (it.hasNext()){
String key = (String) it.next(); // 所有的key
    System.out.println(map.get(key));// 通過key獲取value:get()
}

【方法二】

Set set = map.entrySet();// set裡面裝的是entry
Iterator it = set.iterator();

while (it.hasNext()){
Map.Entry entry = (Map.Entry) it.next(); // 拿到的是entry
    System.out.println(entry.getKey()); // 從entry裡拿到key
    System.out.println(entry.getValue()); // 從entry裡拿到value
}

方法二圖解:

image

總結:

java中提供了很多種容器,它們在儲存元素時,採用的儲存方式不同。所以當我們要取出這些容器中的元素時,可以通過迭代器來完成。就比如,Set容器是一種非線性結構,資料沒有下標,即沒有索引,因此通過迭代器可以進行遍歷操作。

以上是我對今天所學Java迭代器(Iterator)知識的一些個人總結與感悟,最後,感謝各位大佬們看到了這裡!願你韶華不負,青春無悔!

注:

由於自己剛剛開始學習Java不久,語言文字描述、技術等各方面還不是很好,如果文章有任何錯誤和建議,請各位大佬盡情評論留言!如果這篇文章對你有些許幫助,希望可愛親切的您點個贊推薦一手,非常感謝啦!

image

相關文章