Java8 stream 返回有序的map集合

Collectors.toMap() 需要返回有序的map集合-LinkedHashMap

我是用stream遍历数据的时候,最后需要返回有序的Map集合 即:LinkedHashMap,但是我看到Collectors里面并没有返回LinkedHashMap的方法

Java8 stream 返回有序的map集合_第1张图片

解决办法:

 ❌  开始想使用继承,但是发现Collectors类是final,只有另辟蹊径

Java8 stream 返回有序的map集合_第2张图片

✔ 定义一个类

Collectors.toMap方法复制过来,进行修整

Java8 stream 返回有序的map集合_第3张图片

 最后修整完的方法如下:

    public static 
    Collector> toMap(Function keyMapper,
                                    Function valueMapper) {
        return Collectors.toMap(keyMapper, valueMapper,(u,v) -> { throw new IllegalStateException(String.format("Duplicate key %s", u)); }, LinkedHashMap::new);
    }

测试调用:

Java8 stream 返回有序的map集合_第4张图片

 

你可能感兴趣的:(Java8,java,开发语言)