java.lang.IllegalStateException: Duplicate key问题解决方案

异常

Exception in thread "main" java.lang.IllegalStateException: Duplicate key 777
    at java.util.stream.Collectors.lambda$throwingMerger$0(Collectors.java:133)
    at java.util.HashMap.merge(HashMap.java:1254)
    at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1320)
    at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at com.jd.rfs.test.test.main(test.java:98)

说明转换过成map时出现key重复的情况

解决方案是:java8中转换成map时,提供了第三个参数,代表的是重复key的值该如何存放,如下:
Map<String, String> RelationMap = relation.stream().collect(Collectors.toMap(s -> s[2], s -> s[1], (oldValue,newValue)->newValue)));//出现重复时,存放最后一次的value,此处可以根据需求自行处理;

猜你喜欢

转载自blog.csdn.net/mobile18611667978/article/details/88669067