Map集合的遍历方式及一些用法
Map<String, String> map1 = new HashMap<>(10);
Map<String, String> map2 = new HashMap<>(10);
map1.put("甲", "张三");
map1.put("乙", "李四");
map1.put("丙", "王五");
map2.put("一", "一一");
map2.put("二", "二二");
map2.put("三", "三三");
map1.putAll(map2);
String put = map1.put("乙", "aa");
System.out.println(put);
String put1 = map2.put("四", "四四");
System.out.println(put1);
for (Map.Entry<String, String> entry : map1.entrySet()) {
System.out.println("key:" + entry.getKey() + " " + "value:" + entry.getValue());
}
Iterator<Map.Entry<String, String>> it = map1.entrySet().iterator();
while (it.hasNext()){
Map.Entry<String, String> next = it.next();
System.out.println("key:" + next.getKey() + " " + "value:" + next.getValue());
}
for (String key : map1.keySet()) {
String value = map1.get(key);
System.out.println("key:" + key + " " + "value:" + value);
}
for (String value : map1.values()) {
System.out.println("value:" + value);
}
map.forEach((key,value)->{
System.out.println(key);
System.out.println(value);
});
map.entrySet().stream().forEach((entry)->{
System.out.println(entry.getKey());
System.out.println(entry.getValue());
});
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
list.sort((o1, o2) -> o2.getValue() - o1.getValue());
list.stream().limit(3).forEach((entry -> {
System.out.println(entry.getKey() + "=" + entry.getValue());
}));
LinkedHashMap<String, Integer> collect = map.entrySet().stream().sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (c1, c2) -> c1, LinkedHashMap::new));
collect.entrySet().stream().limit(3).forEach((entry) -> {
System.out.println(entry.getKey() + "=" + entry.getValue());
});