Java 集合遍历
1 在集合中使用Lambda表达式 2 Map集合中 3 forEach and Map 4 常规遍历-> 两种遍历: 5 Map map = new HashMap(); 6 map.put(102, "张三"); 7 map.put(105, "李四"); 8 map.put(109, "王五"); 9 map.put(110, "董六"); 10 map.put(111, "李四"); 11 12 // 1.使用for-each循环遍历 13 System.out.println("--1.使用for-each循环遍历--"); 14 // 获得键集合 15 Set keys = map.keySet(); 16 for (Object key : keys) { 17 int ikey = (Integer) key; // 自动拆箱 18 String value = (String) map.get(ikey); // 自动装箱 19 System.out.printf("key=%d - value=%s \n", ikey, value); 20 } 21 22 // 2.使用迭代器遍历 23 System.out.println("--2.使用迭代器遍历--"); 24 // 获得值集合 25 Collection values = map.values(); 26 // 遍历值集合 27 Iterator it = values.iterator(); 28 while (it.hasNext()) { 29 Object item = it.next(); 30 String s = (String) item; 31 System.out.println("值集合元素: " + s); 32 } 33 34 常规遍历对比Lambda遍历 35 Map<String, Integer> items = new HashMap<>(); 36 items.put("A", 10); 37 items.put("B", 20); 38 items.put("C", 30); 39 items.put("D", 40); 40 items.put("E", 50); 41 items.put("F", 60); 42 43 for (Map.Entry<String, Integer> entry : items.entrySet()) { 44 System.out.println("Item : " + entry.getKey() + " Count : " + entry.getValue()); 45 } 46 47 Lambda遍历 48 Map<String, Integer> items = new HashMap<>(); 49 items.put("A", 10); 50 items.put("B", 20); 51 items.put("C", 30); 52 items.put("D", 40); 53 items.put("E", 50); 54 items.put("F", 60); 55 56 items.forEach((k,v)->System.out.println("Item : " + k + " Count : " + v)); 57 58 items.forEach((k,v)->{ 59 System.out.println("Item : " + k + " Count : " + v); 60 if("E".equals(k)){ 61 System.out.println("Hello E"); 62 } 63 }); 64 65 List集合中 66 forEach and List 67 常规遍历-> 三种遍历: 68 List list = new ArrayList(); 69 String b = "B"; 70 // 向集合中添加元素 71 list.add("A"); 72 list.add(b); 73 list.add("C"); 74 list.add(b); 75 list.add("D"); 76 list.add("E"); 77 78 // 1.使用for循环遍历 79 System.out.println("--1.使用for循环遍历--"); 80 for (int i = 0; i < list.size(); i++) { 81 System.out.printf("读取集合元素(%d): %s \n", i, list.get(i)); 82 } 83 84 // 2.使用for-each循环遍历 85 System.out.println("--2.使用for-each循环遍历--"); 86 for (Object item : list) { 87 String s = (String) item; 88 System.out.println("读取集合元素: " + s); 89 } 90 91 // 3.使用迭代器遍历 92 System.out.println("--3.使用迭代器遍历--"); 93 Iterator it = list.iterator(); 94 while (it.hasNext()) { 95 Object item = it.next(); 96 String s = (String) item; 97 System.out.println("读取集合元素: " + s); 98 } 99 100 常规遍历对比Lambda遍历 101 List<String> items = new ArrayList<>(); 102 items.add("A"); 103 items.add("B"); 104 items.add("C"); 105 items.add("D"); 106 items.add("E"); 107 108 for(String item : items){ 109 System.out.println(item); 110 } 111 112 Lambda遍历 113 List<String> items = new ArrayList<>(); 114 items.add("A"); 115 items.add("B"); 116 items.add("C"); 117 items.add("D"); 118 items.add("E"); 119 120 //lambda 121 //Output : A,B,C,D,E 122 items.forEach(item->System.out.println(item)); 123 124 //Output : C 125 items.forEach(item->{ 126 if("C".equals(item)){ 127 System.out.println(item); 128 } 129 }); 130 131 //method reference 132 //Output : A,B,C,D,E 133 items.forEach(System.out::println); 134 135 //Stream and filter 136 //Output : B 137 items.stream() 138 .filter(s->s.contains("B")) 139 .forEach(System.out::println); 140 141 Set集合中 142 forEach and Set 143 常规遍历-> 两种遍历: 144 Set set = new HashSet(); 145 String b = "B"; 146 // 向集合中添加元素 147 set.add("A"); 148 set.add(b); 149 set.add("C"); 150 set.add(b); 151 set.add("D"); 152 set.add("E"); 153 154 // 1.使用for-each循环遍历 155 System.out.println("--1.使用for-each循环遍历--"); 156 for (Object item : set) { 157 String s = (String) item; 158 System.out.println("读取集合元素: " + s); 159 } 160 161 // 2.使用迭代器遍历 162 System.out.println("--2.使用迭代器遍历--"); 163 Iterator it = set.iterator(); 164 while (it.hasNext()) { 165 Object item = it.next(); 166 String s = (String) item; 167 System.out.println("读取集合元素: " + s); 168 } 169 170 常规遍历对比Lambda遍历: 171 常规遍历 172 Set<String> sets = new HashSet<>(); 173 sets.add("A"); 174 sets.add("B"); 175 sets.add("C"); 176 sets.add("D"); 177 sets.add("E"); 178 sets.add("EA"); 179 //Output: A,EA 180 for (String set : sets) { 181 if (set.contains("A")){ 182 System.out.println(set); 183 } 184 } 185 186 Lambda遍历 187 Set<String> sets = new HashSet<>(); 188 sets.add("A"); 189 sets.add("B"); 190 sets.add("C"); 191 sets.add("D"); 192 sets.add("E"); 193 sets.add("EA"); 194 //Output: A,B,C,D,E,EA 195 sets.forEach(set -> System.out.println(set)); 196 //Output: A,B,C,D,E,EA 197 sets.forEach(System.out::println); 198 //Output: A,EA 199 sets.stream() 200 .filter(s -> s.contains("A")) 201 .forEach(System.out::println); 202 //Output: Hello:C 203 sets.forEach(set -> { 204 if ("C".equals(set)) { 205 System.out.println("Hello:" + set); 206 } 207 });