【发布时间】:2019-12-28 00:13:18
【问题描述】:
如何在使用 Lamda 复制地图时处理异常。
List<Person> person = Arrays.asList(
new Person("Charles","Dickens",60),
new Person("Dickens","Charles",60),
new Person("Lewis","Charles",60),
new Person("Charles","Dickens",60),
new Person("abc","abc",20));;
//applying toMap to collect
Map<Object, Object> peronMap = person.stream().limit(5)
.collect(Collectors.toMap(Person::getName,Person::getAge));
System.out.println(peronMap);
这是我的清单
但我收到一个错误
Exception in thread "main" java.lang.IllegalStateException: Duplicate key 60
at java.util.stream.Collectors.lambda$throwingMerger$0(Unknown Source)
at java.util.HashMap.merge(Unknown Source)
at java.util.stream.Collectors.lambda$toMap$58(Unknown Source)
at java.util.stream.ReduceOps$3ReducingSink.accept(Unknown Source)
at java.util.stream.SliceOps$1$1.accept(Unknown Source)
at java.util.Spliterators$ArraySpliterator.tryAdvance(Unknown Source)
at java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source)
【问题讨论】:
标签: java-8