简单场景:map集合存放为数字+星期
如图:
代码:
Map<Integer, String> map = new HashMap<>();
map.put(1, "星期一");
map.put(2, "星期二");
map.put(3, "星期三");
map.put(4, "星期四");
map.put(5, "星期五");
map.put(6, "星期六");
map.put(7, "星期日");
遍历方式一:通过keySet(),进行遍历
如图:
代码:
for (Integer num : map.keySet()) {
System.out.print("key-" + num);
System.out.print(" ");
System.out.println("value-" + map.get(num));
}
结果:
解释:map.keySet() 获取的是map的所有key值
遍历方式二:使用entrySet(),进行遍历
如图:
代码:
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.print("key-" + entry.getKey());
System.out.print(" ");
System.out.println("value-" + entry.getValue());
}
解释:map.entrySet()是把map中的每一组key,value当成一个整体对象,再放入Set集合中。
遍历方式三:使用迭代器,进行遍历
如图:
代码:
Set<Map.Entry<Integer, String>> mapSet = map.entrySet();
Iterator<Map.Entry<Integer, String>> entryIterator = mapSet.iterator();
while (entryIterator.hasNext()) {
Map.Entry<Integer, String> nextEntry = entryIterator.next();
System.out.print("key-" + nextEntry.getKey());
System.out.print(" ");
System.out.println("value-" + nextEntry.getValue());
}
解释:一般当需要删除一些key-value的时候使用。
遍历方式四:使用Lambda表达式,进行遍历
如图:
代码:
map.forEach((key, value) -> {
System.out.print("key-" + key);
System.out.print(" ");
System.out.println("value-" + value);
});
注意:如果要传值,并修改map中的值,需要使用final修饰
如:让所有的key加上2
如图:
代码:
final Integer num = 2;
map.forEach((key, value) -> {
key = key + num;
System.out.print("key-" + key);
System.out.print(" ");
System.out.println("value-" + value);
});
结果:
遍历方式五:只需要获取map中的所有value
如图:
代码:
for (String value : map.values()) {
System.out.println(value);
}
以上就是map的5种遍历方式。