[19/03/27-星期三] 容器_Iterator(迭代器)之遍历容器元素(List/Set/Map)&Collections工具类
一、概念
迭代器为我们提供了统一的遍历容器的方式
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 }