[英]Convert List to grouped list in Java Spring Boot
I want to convert the below list with attributes to group the similar group and concatenate the subgroup values as below expected output using Java Spring Boot.我想使用属性转换以下列表以对相似组进行分组,并使用 Java Spring Boot 将子组值连接为以下预期输出。 This is my code.这是我的代码。
for (JuniorAreaSubgroup value : lstJuniorAreaSubgroup) {
juniorAreaSubgroupMap.setJuniorArea(value.getJuniorArea());
lstSubgroup.add(lstJuniorAreaSubgroup.stream().filter(value.getJuniorArea()) ->
String.join(",", value.getSubgroup()));
juniorAreaSubgroupMap.setSubgroup(lstSubgroup);
lstSubgroup.clear();
}
- ——
[
{
"group": "Tins",
"subgroup": "G13AA"
},
{
"group": "Tins",
"subgroup": "G13AD"
},
{
"group": "Cans",
"subgroup": "G13DA"
},
{
"group": "Cans",
"subgroup": "G13DB"
},
{
"group": "Cans",
"subgroup": "G13DD"
}
]
Expected Output:预期输出:
[
{
"group": "Tins",
"subgroup": [“G13AA”, "G13AD”]
},
{
"group": "Cans",
"subgroup": [“G13DA”, "G13DB”, "G13DD”]
}
]
Any help is appreciated.任何帮助表示赞赏。
Your data looks like JSON.您的数据看起来像 JSON。 This example will set up the data with proper Java objects instead:此示例将使用适当的 Java 对象设置数据:
public class Grouping {
public class Person {
String group;
String subgroup;
Person(String group, String subgroup){
this.group = group;
this.subgroup=subgroup;
}
}
@Test
public void test() {
List<Person> list = new ArrayList<>();
list.add(new Person("Tins", "G13AA"));
list.add(new Person("Tins", "G13AD"));
list.add(new Person("Cans", "G13DA"));
list.add(new Person("Cans", "G13DB"));
list.add(new Person("Cans", "G13DD"));
Map<String, List<String>> result = list.stream()
.collect(Collectors.groupingBy(p->p.group, Collectors.mapping(p->p.subgroup, Collectors.toList())));
System.out.println(result);
}
}
will result in:将导致:
{Cans=[G13DA, G13DB, G13DD], Tins=[G13AA, G13AD]}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.