List转Map-JDK8实现

1.List转Map

class A

方式一:
Map<String, A> aMap = aList.stream().collect(Collectors.toMap(A::getId, a -> a));

也可以使用Function接口中的一个默认方法 Function.identity(),这个方法返回自身对象

方式二:
Map<String, A> aMap = aList.stream().collect(Collectors.toMap(A::getId, Function.identity()));

扩展:

在list转为map时,作为key的值有可能重复,这时候流的处理会抛出个异常:Java.lang.IllegalStateException:Duplicate key。这时候就要在toMap方法中指定当key冲突时key的选择。(这里是选择第二个key覆盖第一个key)

Map<String, a> aMap = aList.stream().collect(Collectors.toMap(a::getId, a -> a,(key1, key2)->key2));
posted @ 2019-09-12 16:23  叶落无蝉鸣  阅读(113)  评论(0编辑  收藏  举报