Java中如何遍历一个Map?
Map代表Java中的双例集合,是一种用于存储键值对(Key-Value)数据的数据结构。
在Java中,都有哪些方式来遍历一个Map呢?
1. 使用keySet()和get(key)遍历:
public static void main(String[] args) { Map<String,Integer> map = new HashMap<>(); map.put("张三",3); map.put("李四",4); map.put("王五",5); map.put("赵六",6); Set<String> strings = map.keySet();//使用keySet得到map中所有key构成的一个集合 for (String string : strings) { System.out.println("key:"+string+" value:"+map.get(string)); } }
2. 使用entrySet()遍历键值对:
public static void main(String[] args) { Map<String,Integer> map = new HashMap<>(); map.put("张三",3); map.put("李四",4); map.put("王五",5); map.put("赵六",6); for (Map.Entry<String, Integer> stringIntegerEntry : map.entrySet()) { System.out.println("key:"+stringIntegerEntry.getKey()+" value:"+stringIntegerEntry.getValue()); } }
3. 使用Iterator遍历键值对:
public static void main(String[] args) { Map<String,Integer> map = new HashMap<>(); map.put("张三",3); map.put("李四",4); map.put("王五",5); map.put("赵六",6); Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();//得到迭代器 while (iterator.hasNext()){ Map.Entry<String, Integer> entry = iterator.next(); System.out.println("key:"+entry.getKey()+" value:"+entry.getValue()); } }
4. 使用Java8的forEach遍历键值对:
public static void main(String[] args) { Map<String,Integer> map = new HashMap<>(); map.put("张三",3); map.put("李四",4); map.put("王五",5); map.put("赵六",6); map.forEach((key,value)->{ System.out.println("key:"+key+" value:"+value); }); }
5. 使用Java8 iterator新特性forEachRemaining遍历键值对:
public static void main(String[] args) { Map<String,Integer> map = new HashMap<>(); map.put("张三",3); map.put("李四",4); map.put("王五",5); map.put("赵六",6); Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator(); iterator.forEachRemaining(entry->{ System.out.println("key:"+entry.getKey()+" value:"+entry.getValue()); }); }
以上就是java中遍历一个Map常见的几种方式