Java 中 Set、List 和 Map 的遍历
java集合类的使用可以说是无处不在,总的我们可以将之分为三大块,分别是从Collection接口延伸出的List、Set和以键值对形式作存储的Map类型集合。
package tup.lucene.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.Set; import java.util.Map.Entry; public class SetListAndMap { /** * 遍历Set集合的方法: * 1.使用Iterator迭代器 * 2.使用foreach遍历 * 3.将Set集合转换为List再遍历 */ private static void setTest() { Set<String> set = new HashSet<String>(); set.add("Java"); set.add("C"); set.add("C++"); set.add("JavaScript"); set.add("Python"); // 重复的元素加不进去 set.add("Java"); //Set集合遍历方法1:使用iterator System.out.println("**************Set集合遍历方法1:使用iterator***************"); Iterator<String> it = set.iterator(); while (it.hasNext()) { String value = it.next(); System.out.println(value); } //Set集合遍历方法2:使用增强for循环 System.out.println("**************Set集合遍历方法2:使用增强for循环***************"); for(String s: set){ System.out.println(s); } //Set集合遍历方法3:将set集合转为list集合,然后再遍历List集合即可 System.out.println("**************Set集合遍历方法3:将set集合转为list集合,然后再遍历List集合即可***************"); List<String> setList = new ArrayList<String>(set);//set转list // 遍历方法 , 使用传统for循环进行遍历。 for (int i = 0, size = setList.size(); i < size; i++) { String value = setList.get(i); System.out.println(value); } } /** * 遍历List集合的方法: * 1.使用Iterator迭代器 * 2.使用for循环遍历 * 3.使用foreach遍历 */ private static void listTest() { List<String> list = new ArrayList<String>(); list.add("111"); list.add("222"); list.add("333"); list.add("444"); list.add("555"); // List遍历方式1:使用iterator System.out.println("**************List遍历方式1:使用iterator***************"); Iterator<String> it = list.iterator(); while (it.hasNext()) { String value = it.next(); System.out.println(value); } // List遍历方法2:使用传统for循环进行遍历 System.out.println("**************List遍历方法2: 使用传统for循环进行遍历***************"); for (int i = 0; i < list.size(); i++) { String value = list.get(i); System.out.println(value); } // List遍历方法3: 使用增强for循环进行遍历 System.out.println("**************List遍历方法3: 使用增强for循环(foreach)进行遍历***************"); for (String value : list) { System.out.println(value); } } /** * 遍历map集合的方法: * 1.使用keySet()获得key的set集合,然后使用Iterator迭代器或foreach遍历set即可,但是只能直接取出key,再通过key取出value,两种方法 * 2.使用entrySet()获得key-value的set集合,然后使用Iterator迭代器或foreach遍历set即可,可同时取出key和value,两种方法 */ private static void mapTest() { // 创建一个HashMap对象,并加入了一些键值对。 Map<String, String> maps = new HashMap<String, String>(); maps.put("111", "java111"); maps.put("222", "java222"); maps.put("333", "java333"); maps.put("444", "java444"); maps.put("555", "java555"); // Map遍历方法1-1: 使用keySet得到key的Set集合,再使用foreach遍历Set集合 System.out.println("**************Map遍历方法1-1: 使用keySet得到key的Set集合,再使用foreach遍历Set集合***************"); Set<String> set = maps.keySet(); for (String s : set) { String key = s; String value = maps.get(s); System.out.println(key + " : " + value); } // Map遍历方法1-2: 使用keySet得到key的Set集合,再使用Iterator迭代器遍历 System.out.println("**************Map遍历方法1-2: 使用keySet得到key的Set集合,再使用Iterator迭代器遍历***************"); Iterator<String> it = set.iterator(); while (it.hasNext()) { String key = it.next(); String value = maps.get(key); System.out.println(key + " : " + value); } // Map遍历方法2-1: 使用entrySet()获得key-value的Set集合,然后使用foreach遍历Set即可 System.out.println("**************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迭代器遍历 System.out.println("**************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); } } public static void main(String[] args) { // Set集合的遍历 setTest(); // List集合的遍历 listTest(); // Map集合的遍历 mapTest(); } }