Iterator的使用


迭代器(Iterator)遍歷List、Set、Map

一:遍歷

迭代器也就是將集合的數據放到一個容器中並排成一排,iterator有一個游標,最初的時候,游標在第一個元素前面,調用Iterator.next()是將游標往后移一位,Iterator.hasNext()是判斷游標后面還沒有可以迭代的元素。

為什么用迭代器了?

是因為最初的時候你用for循環遍歷List,之后人家又要你遍歷Set,但是for循環無法遍歷Set,因為Set是無序的,所以后面就統一用迭代器遍歷集合了。

其實Lterator是我們Collection的方法,只適合我們的List集合和Set集合,   Map集合是不適合的,但是我們把Map集合放在了Set集合里面就可以用了

只有實現的collection集合才有iterator方法,比如List和se接口;而Map接口不能使用iterator方法,需要現獲取set視圖,即Set set = map.keySet();
set就可以使用了。

遍歷List

1         List<String> list = new ArrayList<String>();
2         list.add("a");
3         list.add("b");
4         Iterator<String> iterator = list.iterator();
5         while(iterator.hasNext()){
6             String next = iterator.next();
7             System.out.println(next);
8         }    

遍歷Set,和List一樣

1         Set<String> set = new HashSet<String>();
2         set.add("e");
3         set.add("d");
4         Iterator<String> iteratorSet = set.iterator();
5         while (iteratorSet.hasNext()){
6             String next = iteratorSet.next();
7             System.out.println(next);
8         }

遍歷Map,Map是存放鍵值對的,與集合不一樣,集合只能存放單一元素,所以我們先得將Map看成一個單一元素,放到Set集合中去,而JDk中Map有一個方法entrySet()就是將Map放到一個Set集合中去。

   Map<Integer,String> map = new HashMap<Integer, String>();
2         Set<Map.Entry<Integer, String>> entries = map.entrySet();
3         Iterator<Map.Entry<Integer, String>> iteratorMap = entries.iterator();
4         while (iteratorMap.hasNext()){
5             Map.Entry<Integer, String> next = iteratorMap.next();
6             System.out.println(next);
7         }

 


免責聲明!

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



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