【发布时间】:2015-04-30 16:10:01
【问题描述】:
我有一个包含以下格式数据的文件
1
2
3
我想将其加载为{(1->1), (2->1), (3->1)}
这是 Java 8 代码,
Map<Integer, Integer> map1 = Files.lines(Paths.get(inputFile))
.map(line -> line.trim())
.map(Integer::valueOf)
.collect(Collectors.toMap(x -> x, x -> 1));
我收到以下错误
Exception in thread "main" java.lang.IllegalStateException: Duplicate key 1
如何解决这个错误?
【问题讨论】:
-
当文件有两次相同的编号时,您希望发生什么?
-
如果有这样的情况,我想获取出现次数作为该键的值。因此,如果说密钥 2 在文件中出现 4 次,那么它将是 (2->4)。
-
那你就需要使用这个方法了:docs.oracle.com/javase/8/docs/api/java/util/stream/…
-
如果样本数据实际上包含重复项,我认为这个问题会更好
-
我遇到了同样的问题,错误信息不是误导吗?错误消息说重复键并打印出值
标签: java java-8 java-stream collectors