集合类List,set,Map 的遍历方法,用法和区别

Java中的集合包括三大类,它们是Set、List和Map,它们都处于java.util包中,Set、List和Map都是接口,它们有各自的实现类。Set的实现类主要有HashSet和TreeSet,List的实现类主要有ArrayList,Map的实现类主要有HashMap和TreeMap。
  Set中的对象不按特定方式排序,并且没有重复对象。但它的有些实现类能对集合中的对象按特定方式排序,例如TreeSet类,它可以按照默认排序,也可以通过实现java.util.Comparator<Type>接口来自定义排序方式。
  List中的对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象,如通过list.get(i)方式来获得List集合中的元素。
  Map中的每一个元素包含一个键对象和值对象,它们成对出现。键对象不能重复,值对象可以重复。
  1 import java.util.ArrayList;  
  2 import java.util.HashSet;  
  3 import java.util.Iterator;  
  4 import java.util.List;  
  5 import java.util.Set;  
  6   
  7 public class ListAndSetTest {  
  8   
  9     public static void main(String[] args) {  
 10         // List集合的遍历  
 11         listTest();  
 12         // Set集合的遍历  
 13         setTest();  
 14     }  
 15   
 16     private static void setTest() {  
 17         Set<String> set = new HashSet<String>();  
 18         set.add("JAVA");  
 19         set.add("C");  
 20         set.add("C++");  
 21         // 重复的加不进去。  
 22         set.add("JAVA");  
 23         set.add("JAVASCRIPT");  
 24   
 25         //set集合遍历方法1,使用iterator  
 26         Iterator<String> it = set.iterator();  
 27         while (it.hasNext()) {  
 28             String value = it.next();  
 29             System.out.println(value);  
 30         }  
 31           
 32         //set集合遍历方法2,使用增强for循环。  
 33         for(String s: set){  
 34             System.out.println(s);  
 35         }  
 36     }  
 37   
 38     // 遍历list集合  
 39     private static void listTest() {  
 40         List<String> list = new ArrayList<String>();  
 41         list.add("java111");  
 42         list.add("java222");  
 43         list.add("java333");  
 44         list.add("java444");  
 45         list.add("java555");  
 46   
 47         // 遍历方式1 ,使用iterator  
 48         Iterator<String> it = list.iterator();  
 49         while (it.hasNext()) {  
 50             String value = it.next();  
 51             System.out.println(value);  
 52         }  
 53   
 54         // 遍历方法2 , 使用传统for循环进行遍历。  
 55         for (int i = 0, size = list.size(); i < size; i++) {  
 56             String value = list.get(i);  
 57             System.out.println(value);  
 58         }  
 59   
 60         // 遍历方法3 , 使用增强for循环进行遍历。  
 61         for (String value : list) {  
 62             System.out.println(value);  
 63         }  
 64     }  
 65 }  
 66  
 67 关于Map类型集合的遍历,keySet()与entrySet()方法:
 68 [java] view plaincopy
 69 //增强For循环  
 70 public class MapTest {  
 71   
 72     public static void main(String[] args) {  
 73         // 创建一个HashMap对象,并加入了一些键值对。  
 74         Map<String, String> maps = new HashMap<String, String>();  
 75         maps.put("111", "java111");  
 76         maps.put("222", "java222");  
 77         maps.put("333", "java333");  
 78         maps.put("444", "java444");  
 79         maps.put("555", "java555");  
 80           
 81         // 传统的遍历map集合的方法1; keySet()  
 82         //traditionalMethod1(maps);  
 83         // 传统的遍历map集合的方法2; entrySet()  
 84         //traditionalMethod2(maps);  
 85         // 使用增强For循环来遍历map集合方法1; keySet()  
 86         //strongForMethod1(maps);  
 87         // 使用增强For循环来遍历map集合方法2; entrySet()  
 88         strongForMethod2(maps);  
 89     }  
 90   
 91     private static void strongForMethod2(Map<String, String> maps) {  
 92         Set<Entry<String, String>> set = maps.entrySet();  
 93         for (Entry<String, String> entry : set) {  
 94             String key = entry.getKey();  
 95             String value = entry.getValue();  
 96             System.out.println(key + " : " + value);  
 97         }  
 98     }  
 99   
100     private static void strongForMethod1(Map<String, String> maps) {  
101         Set<String> set = maps.keySet();  
102         for (String s : set) {  
103             String key = s;  
104             String value = maps.get(s);  
105             System.out.println(key + " : " + value);  
106         }  
107     }  
108   
109     // 使用entrySet()方法,获取maps集合中的每一个键值对,  
110     private static void traditionalMethod2(Map<String, String> maps) {  
111         Set<Map.Entry<String, String>> sets = maps.entrySet();  
112         // 取得迭代器遍历出对应的值。  
113         Iterator<Entry<String, String>> it = sets.iterator();  
114         while (it.hasNext()) {  
115             Map.Entry<String, String> entry = (Entry<String, String>) it.next();  
116             String key = entry.getKey();  
117             String value = entry.getValue();  
118             System.out.println(key + " : " + value);  
119         }  
120     }  
121   
122     // 使用keySet()方法,获取maps集合中的所有键,遍历键取得所对应的值。  
123     private static void traditionalMethod1(Map<String, String> maps) {  
124         Set<String> sets = maps.keySet();  
125         // 取得迭代器遍历出对应的值。  
126         Iterator<String> it = sets.iterator();  
127         while (it.hasNext()) {  
128             String key = it.next();  
129             String value = maps.get(key);  
130             System.out.println(key + " : " + value);  
131         }  
132     }  
133 }  

 

posted @ 2017-05-29 00:54  不死不灭  阅读(1166)  评论(0)    收藏  举报