一、概念
迭代器为我们提供了统一的遍历容器的方式
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() { //测试迭代器遍历list27 Listlist=new ArrayList ();28 list.add("A");29 list.add("B");30 list.add("D3");31 list.add("C");32 for (Iterator 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 set=new HashSet ();45 set.add("A");46 set.add("B");47 set.add("B3");48 set.add("C");49 for (Iterator 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() { //测试迭代器遍历Map57 Map map=new HashMap ();58 map.put(101, "A");59 map.put(104, "D");60 map.put(103, "C");61 //不知道哪里错了,心累,就是报错 ,以后解决62 /*Set > ss = map.entrySet();63 for (Iterator > iterator = ss.iterator(); iterator.hasNext();) {64 Entry e = iterator.next();65 System.out.println(e.getKey() + "--" + e.getValue());66 }*/67 68 Set ss = map.keySet();//第二种遍历方式69 for (Iterator 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 ListaList = new ArrayList ();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 }