@Test
public void duplicateKeyDemo(){
// 测试数据
List<Commodity> list = this.getCommodityList();
// 去重
Map<String, Commodity> mapSuccess = list.stream()
.collect(Collectors.toMap(Commodity::getCode, Function.identity(),(commodity1, commodity2) -> commodity1));
log.info("mapSuccess:{}", mapSuccess);
// 异常
Map<String, Commodity> mapError = list.stream()
.collect(Collectors.toMap(Commodity::getCode, (p) -> p));
log.info("mapError:{}", mapError);
}
private List<Commodity> getCommodityList(){
List<Commodity> list = new ArrayList<>();
list.add(new Commodity("apple8", 8888));
list.add(new Commodity("apple8", 9999));
list.add(new Commodity("huawei", 6666));
list.add(new Commodity("xiaomi", 5555));
return list;
}
java 8 stream list 转 map(toMap) Duplicate key 异常重现与解决
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 刚接触java8 Stream的时候,经常会感觉分不清楚 peek 与 map方法的区别其实了解一下λ表达式就明白...
- 本套JAVA8教程由于是有英文翻译过来的,如果有翻译不对的地方还请多多包涵。 本节课先简单的介绍下Java8有哪些...
- 编写转换帮助类 遍历出List<JavaBean>的对象,调用上面已经写好的ListBeanToListMap方法...
- 一、背景 在各种系统需要加签的时一般都会把参与签名的数据按get请求参数拼接起来并且要求有序,这个方法会比较方便 ...
- 还在找寻最简单最方便的美容方法吗?还在比较各种食物的卡路里吗? 不不不,你现在需要的不是这个,有一个健康的身体,充...