迭代器遍歷【List、Set、Map】

迭代器遍歷【List、Set、Map】java

exampleide

 1 package boom.collection;
 2 
 3 import java.util.ArrayList;
 4 import java.util.HashMap;
 5 import java.util.HashSet;
 6 import java.util.Iterator;
 7 import java.util.List;
 8 import java.util.Map;
 9 import java.util.Map.Entry;
10 import java.util.Set;
11 
12 /**
13  * 迭代器遍歷List、Set、Map
14  * @author Administrator
15  *
16  */
17 public class IteratorTest {
18 
19     public static void main(String[] args) {
20         //testList();
21         //testSet();
22         testMap();
23     }
24     
25     private static void testMap() {
26         Map<Integer, String> map = new HashMap<>();
27         map.put(001, "小喜慶");
28         map.put(002, "小云雲");
29         map.put(003, "小胖砸");
30         
31         // 遍歷map第一種
32         Set<Entry<Integer, String>> ss = map.entrySet();
33         for (Iterator<Entry<Integer, String>> iterator = ss.iterator(); iterator.hasNext();) {
34             Entry<Integer, String> entry = (Entry<Integer, String>) iterator.next();
35             System.out.println(entry.getKey() + "=>" + entry.getValue());
36         }
37         
38         // 遍歷map第二種(經過鍵去獲取對應的鍵值對)
39         Set<Integer> keySet = map.keySet();
40         for (Iterator<Integer> iterator = keySet.iterator(); iterator.hasNext();) {
41             Integer key = (Integer) iterator.next();
42             System.out.println(key + "=>" + map.get(key));
43         }
44         
45     }
46 
47     private static void testSet() {
48         Set<String> set = new HashSet<>();
49         set.add("谷歌");
50         set.add("百度");
51         set.add("搜狗");
52         
53         // 遍歷
54         for (Iterator<String> iterator = set.iterator(); iterator.hasNext();) {
55             String string = iterator.next();
56             System.out.println(string);
57         }
58     }
59 
60     private static void testList() {
61         List<String> list = new ArrayList<>();
62         list.add("Google");
63         list.add("Baidu");
64         list.add("SougGou");
65         
66         // 迭代器迭代集合
67         for (Iterator<String> iterator = list.iterator(); iterator.hasNext();) {
68             String string = (String) iterator.next();
69             System.out.println(string);
70         }
71     }
72 
73 }
View Code

遍歷List方法一:普通for循環
工具

1 for(int i=0;i<list.size();i++){//list爲集合的對象名
2     String temp = (String)list.get(i);
3     System.out.println(temp);
4 }

遍歷List方法二:加強for循環(使用泛型!)
測試

1 for (String temp : list) {
2 System.out.println(temp);
3 }

遍歷List方法三:使用Iterator迭代器(1)
spa

1 for(Iterator iter= list.iterator();iter.hasNext();){
2     String temp = (String)iter.next();
3     System.out.println(temp);
4 }

遍歷List方法四:使用Iterator迭代器(2)
code

1 Iterator  iter =list.iterator();
2 while(iter.hasNext()){
3     Object  obj =  iter.next();
4     iter.remove();//若是要遍歷時,刪除集合中的元素,建議使用這種方式!
5     System.out.println(obj);
6 }

遍歷Set方法一:加強for循環
對象

1 for(String temp:set){
2 System.out.println(temp);
3 }

遍歷Set方法二:使用Iterator迭代器
blog

1 for(Iterator iter = set.iterator();iter.hasNext();){
2     String temp = (String)iter.next();
3     System.out.println(temp);
4 }

遍歷Map方法一:根據key獲取value
排序

1 Map<Integer, Man> maps = new HashMap<Integer, Man>();
2 Set<Integer>  keySet =  maps.keySet();
3 for(Integer id : keySet){
4 System.out.println(maps.get(id).name);
5 }

遍歷Map方法二:使用entrySet
接口

1 Set<Entry<Integer, Man>>  ss = maps.entrySet();
2 for (Iterator iterator = ss.iterator(); iterator.hasNext();) {
3     Entry e = (Entry) iterator.next(); 
4     System.out.println(e.getKey()+"--"+e.getValue());

Collections工具類 (collection是接口,collections是工具類)
[java.util.Collections 提供了對Set、List、Map進行排序、填充、查找元素的輔助方法]
建立模板進行測試:

1 List<String> list = new ArrayList<>();
2 for (int i = 0; i < 4; i++) {
3     list.add(i + "小喜慶");
4 }
5 System.out.println("正常遍歷:" + list);

1. void sort(List) //對List容器內的元素排序,排序的規則是按照升序進行排序。

1 // 遞增的方式遍歷[自定義類使用comparable接口進行排序]
2 Collections.sort(list);
3 System.out.println("遞增遍歷:" + list);

2. void shuffle(List) //對List容器內的元素進行隨機排列。

1 // 隨機排序list中的元素
2 Collections.shuffle(list);
3 System.out.println("隨機遍歷:" + list);

3. void reverse(List) //對List容器內的元素進行逆續排列 。

1 // 逆序排序
2 Collections.reverse(list);
3 System.out.println("逆序遍歷:" + list);

4. int binarySearch(List, Object)//對於順序的List容器,採用折半查找的方法查找特定對象。

1 // 二分查找法
2 System.out.println(Collections.binarySearch(list, "小云雲"));// 沒有查到返回一個負值       -5
3 System.out.println(Collections.binarySearch(list, "2小喜慶"));// 查到返回一個對應的下標     2

5.void fill(List, Object) //用一個特定的對象重寫整個List容器。

1 //特定的對象重寫整個List容器。
2 Collections.fill(list, "Hello");
3 System.out.println(list);

【1~5】運行圖:

相關文章
相關標籤/搜索