本套JAVA8教程由于是有英文翻译过来的,如果有翻译不对的地方还请多多包涵。
本节课先简单的介绍下Java8有哪些新特性,对于Java6/7版本做出哪些更改.那废话不多说,赶紧开始今天的课程吧.
按照map的Key进行排序
public static void main(String[] args) {
Map unsortMap = new HashMap<>();
unsortMap.put("z", 10);
unsortMap.put("b", 5);
unsortMap.put("a", 6);
unsortMap.put("c", 20);
unsortMap.put("d", 1);
unsortMap.put("e", 7);
unsortMap.put("y", 8);
unsortMap.put("n", 99);
unsortMap.put("j", 50);
unsortMap.put("m", 2);
unsortMap.put("f", 9);
System.out.println("原始的...");
System.out.println(unsortMap);
Map result = new LinkedHashMap<>();
//按照Key进行排序
unsortMap.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.forEachOrdered(x -> result.put(x.getKey(), x.getValue()));
System.out.println("排序之后...");
System.out.println(result);
}
输出
原始的...
{a=6, b=5, c=20, d=1, e=7, f=9, y=8, z=10, j=50, m=2, n=99}
排序之后...
{a=6, b=5, c=20, d=1, e=7, f=9, j=50, m=2, n=99, y=8, z=10}
按照map的value进行排序
public static void main(String[] args) {
Map unsortMap = new HashMap<>();
unsortMap.put("z", 10);
unsortMap.put("b", 5);
unsortMap.put("a", 6);
unsortMap.put("c", 20);
unsortMap.put("d", 1);
unsortMap.put("e", 7);
unsortMap.put("y", 8);
unsortMap.put("n", 99);
unsortMap.put("j", 50);
unsortMap.put("m", 2);
unsortMap.put("f", 9);
System.out.println("原始的...");
System.out.println(unsortMap);
Map result = new LinkedHashMap<>();
//按照Key进行排序
unsortMap.entrySet().stream()
.sorted(Map.Entry.comparingByValue().reversed())
.forEachOrdered(x -> result.put(x.getKey(), x.getValue()));
System.out.println("排序之后...");
System.out.println(result);
}
输出
原始的...
{a=6, b=5, c=20, d=1, e=7, f=9, y=8, z=10, j=50, m=2, n=99}
排序之后...
{n=99, j=50, c=20, z=10, f=9, y=8, e=7, a=6, b=5, m=2, d=1}
如果想升序排序的话只需要去掉reversed
函数即可,是不是很简单呢