我从一个文本文件中读取了以下代码行:
try (BufferedReader br = new BufferedReader(new InputStreamReader(Uio.decodeFrom(url)))) {
return br.lines()
.parallel()
.map(s -> s.split("\\s+")) // split by whitespace
.collect(
Collectors.groupingByConcurrent(
arr -> arr[0], // String 1
Collectors.groupingByConcurrent(
arr -> arr[arr.length-1], // String 2
Collectors.counting()
)
)
);
} catch (IOException e) {
throw new UncheckedIOException(e);
}
该文本文件包含如下数据
String1 ... cols ... String2
string1data ... otherdata ... string2data
...
我试着按String1
和String2
分组,然后计算它们的数量.那么最终结果应该是Map<String, Map<String, Long>>
分.然而,使用上面的代码,编译器认为collect()
返回 ConcurrentMap <Object, ConcurrentMap<Object, Long>>
.
为什么 keys 不是字符串?