package com.collection.test; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; /** * Java中的list、set、map遍历总结 * @author xiaoyin * */ public class ListSetAndMap { public static void main(String[] args) { // List集合的遍历 testList(); // Set集合的遍历 testSet(); // Map集合的遍历 testMap(); } /** * 遍历map集合的方法: * 1.使用keySet()获得key的set集合,然后使用Iterator迭代器或foreach遍历set即可,但是只能直接取出key,再通过key取出value,两种方法 * 2.使用entrySet()获得key-value的set集合,然后使用Iterator迭代器或foreach遍历set即可,可同时取出key和value,两种方法 */ private static void testMap() { Map<String, String> maps = new HashMap<>(); maps.put("001", "Java"); maps.put("002", "Spring"); maps.put("003", "SpringMVC"); maps.put("004", "Mybatis"); // Map遍历方法1-1: 使用keySet得到key的Set集合,再使用foreach遍历Set集合 Set<String> keySet = maps.keySet(); for (String ss : keySet) { String key = ss; String value = maps.get(ss); System.out.println(key + ":" + value); } // Map遍历方法1-2: 使用keySet得到key的Set集合,再使用Iterator迭代器遍历 Iterator<String> iterator = keySet.iterator(); while (iterator.hasNext()) { String key = iterator.next(); String value = maps.get(key); System.out.println(key + ":" + value); } // Map遍历方法2-1: 使用entrySet()获得key-value的Set集合,然后使用foreach遍历Set即可 Set<Entry<String, String>> entrySet = maps.entrySet(); for (Entry<String, String> entry : entrySet) { String key = entry.getKey(); String value = entry.getValue(); System.out.println(key + ":" + value); } // Map遍历方法2-2: 使用entrySet()获得key-value的Set集合,然后使用Iterator迭代器遍历 Iterator<Entry<String, String>> entryIt = entrySet.iterator(); while (entryIt.hasNext()) { Map.Entry<String, String> entry = (Entry<String, String>) entryIt.next(); String key = entry.getKey(); String value = entry.getValue(); System.out.println(key + " : " + value); } } /** * 遍历Set集合的方法: * 1.使用foreach遍历 * 2.使用Iterator迭代器 * 3.将Set集合转换为List再遍历 */ private static void testSet() { Set<String> set = new HashSet<>(); set.add("Set111"); set.add("Set222"); set.add("Set333"); set.add("Set444"); // 2-1 使用foreach遍历 for (String value : set) { System.out.println(value); } // 2-2 使用Iterator迭代器 Iterator<String> iterator = set.iterator(); while(iterator.hasNext()){ String value = iterator.next(); System.out.println(value); } // 2-3 将Set集合转换为List再遍历 List<String> setList = new ArrayList<>(set);//set转list // 遍历方法 (可用list遍历方式去遍历) for (String value : setList) { System.out.println(value); } } /** * 遍历List集合的方法: * 1.使用for循环遍历 * 2.使用Iterator迭代器 * 3.使用foreach遍历 */ private static void testList() { List<String> list = new ArrayList<>(); list.add("林徽因"); list.add("陆小曼"); list.add("阮玉玲"); list.add("周璇"); // 1-1 使用for循环遍历 for (int i = 0; i < list.size(); i++) { String value = list.get(i); System.out.println(value); } // 1-2 使用Iterator循环遍历 for(Iterator<String> iterator = list.iterator();iterator.hasNext();){ String value = iterator.next(); System.out.println(value); } // 1-3 使用foreach遍历 for (String value : list) { System.out.println(value); } } }