在Java中,如何使用lambda同时按键和值对Map进行排序?
Map接口实现了Collection接口,该接口提供了Map数据结构的功能。映射不包含任何重复的键,并且每个键都与一个值相关联。我们可以使用与它们关联的键来访问和修改值。
在以下两个示例中,我们可以借助lambda表达式按键和值对Map进行排序。
使用Key对Map进行排序的示例
import java.util.*;
import java.util.stream.*;
public class MapSortUsingKeyTest {
public static void main(String args[]) {
// 根据键对映射进行排序
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(2, "India");
map.put(5, "Australia");
map.put(3, "England");
map.put(1, "Newzealand");
map.put(4, "Scotland");
Map<Integer, String> sortedMap = map.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(e1, e2) -> e2, LinkedHashMap::new));
System.out.println("Sorted Map: " + Arrays.toString(sortedMap.entrySet().toArray()));
}
}输出结果
Sorted Map: [1=Newzealand, 2=India, 3=England, 4=Scotland, 5=Australia]
使用值(Value)对Map进行排序的示例
import java.util.*;
import java.util.stream.*;
public class MapSortUsingValueTest {
public static void main(String args[]) {
//根据它们的值对映射进行排序
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "Jaidev");
map.put(2, "Adithya");
map.put(3, "Vamsi");
map.put(4, "Krishna");
map.put(5, "Chaitanya");
Map<Integer, String> sortedMap = map.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(e1, e2) -> e2, LinkedHashMap::new));
System.out.println("Sorted Map: " + Arrays.toString(sortedMap.entrySet().toArray()));
}
}输出结果
Sorted Map: [2=Adithya, 5=Chaitanya, 1=Jaidev, 4=Krishna, 3=Vamsi]
热门推荐
2 聚餐会祝福语简短
10 生日贺卡祝福语 简短独特
11 对航母的祝福语简短
12 祝福语诗意文案简短
13 公司五一祝福语简短最新
14 我想找祝福语大全简短
15 新年稳重的祝福语简短
16 分手新年祝福语大全简短
17 特别的端午祝福语简短
18 好朋友夫妻祝福语简短