java Map 遍历方法
java Map 遍历方法 Map map = new HashMap(); Iterator it = map.entrySet().iterator(); while (it.hasNext()) { ### Java Map遍历方法详解 在Java编程语言中,`Map`接口是集合框架中的一个核心组成部分,它存储键值对映射。本篇文章将详细介绍几种常用的遍历`Map`的方法,包括使用传统迭代器(Iterator)、增强型for循环(For-Each循环)以及通过键集(Key Set)进行遍历。 #### 一、使用Iterator遍历Map 1. **通过`entrySet()`获取迭代器** 使用`Map.entrySet()`方法可以返回`Map`中所有映射关系的`Set`视图,然后可以通过迭代这个`Set`来遍历整个`Map`。 ```java Map<String, String> emails = new Hashtable<>(); Iterator<Map.Entry<String, String>> it = emails.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, String> entry = it.next(); System.out.println("email-" + entry.getKey() + ":" + entry.getValue()); } ``` 2. **使用For-Each循环遍历Entry Set** 自JDK 1.5起,可以使用增强型for循环遍历`Map`的`entrySet()`。 ```java for (Map.Entry<String, String> entry : emails.entrySet()) { System.out.println("email-" + entry.getKey() + ":" + entry.getValue()); } ``` 3. **通过`keySet()`获取迭代器** 除了通过`entrySet()`外,还可以通过`keySet()`获取`Map`的所有键,并且通过这些键访问对应的值。 ```java Iterator<String> it = emails.keySet().iterator(); while (it.hasNext()) { String key = it.next(); System.out.println("email-" + key + ":" + emails.get(key)); } ``` 4. **使用For-Each循环遍历Key Set** 与遍历`entrySet()`类似,也可以使用增强型for循环遍历`keySet()`。 ```java for (String key : emails.keySet()) { System.out.println("email-" + key + ":" + emails.get(key)); } ``` #### 二、遍历Map的Value集合 除了遍历键值对之外,还可以直接遍历`Map`的值集合。 ```java Map<String, Object> aa = new HashMap<>(); aa.put("tmp1", new Object()); for (Object temp : aa.values()) { // 这里可以处理每个值 } ``` #### 三、遍历其他类型的Map 除了基本的`HashMap`之外,还可以遍历其他类型的`Map`,例如`TreeMap`等。 1. **遍历ArrayList** 对于列表的遍历较为简单,可以直接使用For-Each循环。 ```java ArrayList<String> list = new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); for (String m : list) { System.out.println(m); } ``` 2. **遍历HashMap** 使用`entrySet()`或`keySet()`的方式同样适用于遍历`HashMap`。 ```java HashMap<Object, Object> hash = new HashMap<>(); hash.put(3, 3); hash.put(4, 4); hash.put(5, 5); hash.put(6, 6); hash.put(1, 1); hash.put(2, 2); for (Map.Entry<Object, Object> m : hash.entrySet()) { System.out.println(m.getKey() + "---" + m.getValue()); } ``` 3. **遍历TreeMap** `TreeMap`按照键的自然顺序排序,因此在遍历时会自动按顺序输出。 ```java TreeMap<Object, Object> treeMap = new TreeMap<>(); treeMap.put(1, 1); treeMap.put(2, 2); treeMap.put(3, 3); treeMap.put(4, 4); treeMap.put(5, 5); treeMap.put(6, 6); for (Object m : treeMap.keySet()) { System.out.println(m + "---" + treeMap.get(m)); } ``` 通过以上介绍,我们可以看到Java中提供了多种遍历`Map`的方式。选择哪种方式取决于具体的场景和个人喜好。希望这篇文章能帮助大家更好地理解和掌握Java中`Map`的遍历技巧。