第一种方式:通过keySet()方法先获取Map的所有键
Map<String, Integer> map = new HashMap<>();
map.put("啤酒", 15);
map.put("饮料", 10);
map.put("矿泉水", 8);
map.put("花生", 20);
map.put("瓜子", 20);
map.put("八宝粥", 50);
// 通过keySet()获取所有的key
Set<String> set = map.keySet();
for (String key : set) {
System.out.println("key=" + key + " value=" + map.get(key));
}
第二种方式:通过entrySet()获取所有的entry
entry相当于map中的一对值,如“啤酒-15”、“饮料-10”
Map<String, Integer> map = new HashMap<>();
map.put("啤酒", 15);
map.put("饮料", 10);
map.put("矿泉水", 8);
map.put("花生", 20);
map.put("瓜子", 20);
map.put("八宝粥", 50);
// 通过entrySet()获取所有的entry
Set<Map.Entry<String, Integer>> entries = map.entrySet();
for (Map.Entry<String, Integer> entry : entries) {
System.out.println("key=" + entry.getKey() + " value=" + entry.getValue());
}
第三种方式:通过forEach()
Map<String, Integer> map = new HashMap<>();
map.put("啤酒", 15);
map.put("饮料", 10);
map.put("矿泉水", 8);
map.put("花生", 20);
map.put("瓜子", 20);
map.put("八宝粥", 50);
// 通过forEach()
map.forEach(new BiConsumer<String, Integer>() {
@Override
public void accept(String key, Integer value) {
System.out.println("key=" + key + " value=" + value);
}
});
可以用lambda表达式简化代码,如下:
// 通过forEach()
map.forEach((key, value) -> System.out.println("key=" + key + " value=" + value));