基于元素的Java拆分列表

基于元素的Java拆分列表,java,dictionary,arraylist,java-8,java-stream,Java,Dictionary,Arraylist,Java 8,Java Stream,所以我有一个类标准,带有属性和构造函数: String studentName; String category; Standard(studentName, category) 我还有一个列表,其中包含标准对象,如下所示: [S1,S2,S3,S4] Map<String,List<Standard>> m = {1=[S1, S3], 2=[S2,S4]}; 在哪里 S1 = Standard("ABC","1"); S2 = Standard("DEF","

所以我有一个类
标准
,带有属性和构造函数:

String studentName;
String category;

Standard(studentName, category)
我还有一个
列表
,其中包含
标准
对象,如下所示:

[S1,S2,S3,S4]
Map<String,List<Standard>> m = {1=[S1, S3], 2=[S2,S4]};
在哪里

S1 = Standard("ABC","1");
S2 = Standard("DEF","2")
S3 = Standard("IJK","1")
S4 = Standard("LMN","2")
我想将具有相同
类别的
Standard
对象分组到
映射(字符串,列表)
中,键为
category
,值为
List
Standard
对象如下:

[S1,S2,S3,S4]
Map<String,List<Standard>> m = {1=[S1, S3], 2=[S2,S4]};
Map m={1=[S1,S3],2=[S2,S4]};
现在我想知道是否可以使用Java 8 streams来完成此操作。

您可以使用收集器:

Map<String, List<Standard>> map = standards.stream()
    .collect(Collectors.groupingBy(Standard::getCategory));
Map Map=standards.stream()
.collect(收集器.groupingBy(标准::getCategory));
假设您实现了
getCategory
方法