小编pan*_*low的帖子

Java Stream Collect() 分类器无法检测类型

我有以下代码从文本文件读取行:

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);
    }
Run Code Online (Sandbox Code Playgroud)

文本文件包含如下数据

String1     ... cols      ... String2
string1data ... otherdata ... string2data
...
Run Code Online (Sandbox Code Playgroud)

我正在尝试按 和 进行分组String1String2获取它们的计数。那么最终结果应该是一个Map<String, Map<String, Long>>. 然而,对于上面的代码,编译器说返回collect()一个 ConcurrentMap <Object, ConcurrentMap<Object, Long>>.

为什么键不是字符串?

java collections java-stream

6
推荐指数
1
解决办法
61
查看次数

标签 统计

collections ×1

java ×1

java-stream ×1