我有一个使用案例,需要读取一个文件,并获取一个序列的分组以及与该序列关联的值列表。这些记录在文件中的格式类似于: 序列 - 值,例如
10-A
10-B
11-C
11-A
我希望输出一个地图 (
Map<String,List<String>>
),其中序列作为键,与其相关联的值列表作为值,如下所示。10,[A,B]
11,[C,A]
是否有一种方法可以在不创建这些记录的POJO的情况下完成此操作?我一直试图探索Collectors.groupingBy
的用法,但我看到的大多数示例都是基于创建POJO的。
我一直在尝试编写类似于以下内容的代码:
Map<String, List<String>> seqCpcGroupMap = pendingCpcList.stream().map(rec ->{
String[] cpcRec = rec.split("-");
return new Tuple2<>(cpcRec[0],cpcRec[1])
}).collect(Collectors.groupingBy(x->x.))
或者
Map<String, List<String>> seqCpcGroupMap = pendingCpcList.stream().map(rec ->{
String[] cpcRec = rec.split("-");
return Arrays.asList(cpcRec[0],cpcRec[1]);
}).collect(Collectors.groupingBy(x->(ArrayList<String>)x[0]));
我无法提供任何键来进行groupingBy
函数的分组操作,是否有方法可以实现这一点或者必须创建一个POJO来使用groupingBy
?