我们先初始化一个最简单的Map集合
Map<String, String> test = new HashMap<>();test.put("123", "456");test.put("456", "789");test.put("012", "345");
方法一:
先获取到所有key、value,再通过foreach循环,遍历出所有k、v,理论上推荐这种方法,尤其是容量较大的时候。
for (Map.Entry<String, String> entry:test.entrySet()){System.out.println(entry.getKey() + "" + entry.getValue());entry.setValue("00000");}
方法二:
通过key的set集合进行遍历,然后通过key来取map的value
Set set = test.keySet();for (Object key : set) {System.out.println(key + "" + test.get(key));}
方法三:
将key的set集合以迭代器的方式遍历出来,然后通过key来取map的value
Set set = test.keySet();Iterator iterator = set.iterator();while (iterator.hasNext()){Object next = iterator.next();System.out.println("key:" + next + ",value:" + test.get(next));}
方法四:
将整个Map的键值对以迭代器的方式遍历出来,然后通过.getKey()与.getValue()方法取k、v的值,过程比较繁琐,数据量比较大时耗时较长。不推荐
Set<Map.Entry<String, String>> entries = test.entrySet();Iterator<Map.Entry<String, String>> iterator1 = entries.iterator();while (iterator1.hasNext()){Map.Entry<String, String> next = iterator1.next();System.out.println("key:" + next.getKey() + ",value:" + next.getValue());}
方法五:
直接取出map的value值并放在collection中,然后将v循环遍历,在只需要获取map的值情况下推荐使用,其他情况不推荐
Collection<String> values = test.values();for (String value : values) {System.out.println("value:" + value);}
复杂Map遍历举例:
Map<String, List> map = new HashMap<String, List>();for (Map.Entry entry : map.entrySet()) {String key = entry.getKey().toString();List<String> list= (List) entry.getValue();for (String value : list) {System.out.println(key + "====" + value);}}