一、概念

      迭代器为我们提供了统一的遍历容器的方式

 1 /*
 2  *迭代器遍历
 3  * 
 4  */
 5 package cn.sxt.collection;
 6 
 7 import java.security.KeyStore.Entry;
 8 import java.util.ArrayList;
 9 import java.util.HashMap;
10 import java.util.HashSet;
11 import java.util.Iterator;
12 import java.util.List;
13 import java.util.Map;
14 import java.util.Set;
15 
16 
17 public class Test_0327_Iterator {
18     public static void main(String[] args) {
19         //testIteratorList();
20         //testIteratorSet();
21         testIteratorMap();
22 
23 
24     }
25 
26     public static void testIteratorList() {//测试迭代器遍历list
27         List<String> list=new ArrayList<String>();
28         list.add("A");
29         list.add("B");
30         list.add("D3");
31         list.add("C");
32         for (Iterator<String> iter = list.iterator(); iter.hasNext();) {
33             String temp = iter.next();
34             System.out.print(temp + "\t");//输出遍历结果
35             if (temp.endsWith("3")) {// 删除3结尾的字符串
36                 iter.remove();
37             }
38         }
39         System.out.println("\n"+list);
40     }
41 
42 
43     public static void testIteratorSet() {//测试迭代器遍历set, 与上边一模一样
44         Set<String> set=new HashSet<String>();
45         set.add("A");
46         set.add("B");
47         set.add("B3");
48         set.add("C");
49         for (Iterator<String> iter = set.iterator(); iter.hasNext();) {
50             String temp = iter.next();
51             System.out.print(temp + "\t");//输出遍历结果
52         }
53     }
54 
55     @SuppressWarnings("unchecked")
56     public static void testIteratorMap() {//测试迭代器遍历Map
57         Map<Integer,String> map=new HashMap<Integer,String>();
58         map.put(101, "A");
59         map.put(104, "D");
60         map.put(103, "C");
61         //不知道哪里错了,心累,就是报错 ,以后解决
62         /*Set<Entry<String, String>> ss = map.entrySet();
63         for (Iterator<Entry<String, String>> iterator = ss.iterator(); iterator.hasNext();) {
64             Entry<String, String> e = iterator.next();
65             System.out.println(e.getKey() + "--" + e.getValue());
66         }*/
67 
68         Set<Integer> ss = map.keySet();//第二种遍历方式
69         for (Iterator<Integer> iterator = ss.iterator(); iterator.hasNext();) {
70             Integer key = iterator.next();
71             System.out.println(key + "--" + map.get(key));
72         }
73     }
74 }

遍历集合的方法总结:

    链接:http://www.sxt.cn/Java_jQuery_in_action/nine-ergodicset.html

二、Collections工具类

    类 java.util.Collections 提供了对Set、List、Map进行排序、填充、查找元素的辅助方法。

      1. void sort(List) //对List容器内的元素排序,排序的规则是按照升序进行排序。

      2. void shuffle(List) //对List容器内的元素进行随机排列。

      3. void reverse(List) //对List容器内的元素进行逆续排列 。

      4. void fill(List, Object) //用一个特定的对象重写整个List容器。

      5. int binarySearch(List, Object)//对于顺序的List容器,采用折半查找的方法查找特定对象。

【代码示例】

 1 /*
 2 *测试Collections辅助工具类 
 3 *Collection 是接口  Collections是个工具类
 4  * 
 5  */
 6 package cn.sxt.collection;
 7 
 8 import java.util.ArrayList;
 9 import java.util.Collections;
10 import java.util.List;
11 
12 public class Test_0327_Collections {
13     public static void main(String[] args) {
14         List<String> aList = new ArrayList<String>();
15         for (int i = 0; i < 5; i++){
16             aList.add("a" + i);
17         }
18         System.out.println(aList);
19         Collections.shuffle(aList); // shuffle:洗牌,随机   随机排列
20         System.out.println(aList);
21         Collections.reverse(aList); // reverse:倒置   逆续
22         System.out.println(aList);
23         Collections.sort(aList); //sort: 排序
24         System.out.println(aList);
25         System.out.println(Collections.binarySearch(aList, "a2")); //binarySearch:二分查找 返回"a2"的下标
26         Collections.fill(aList, "hello");//fill:填充  把所有的都换成“hello”
27         System.out.println(aList);
28     }
29 
30 }

 

版权声明:本文为ID-qingxin原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ID-qingxin/p/10594275.html