简单场景: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种遍历方式。
文章介绍了在Java中遍历Map集合的五种方法:通过keySet(),entrySet(),使用迭代器,使用Lambda表达式以及仅获取values。每种方法的特点和适用场景都有所提及,例如keySet()适合只遍历键,entrySet()可以同时访问键值对,而Lambda表达式提供了简洁的遍历方式,但若需修改值,需使用final修饰键。
854

被折叠的 条评论
为什么被折叠?



