在JavaSpring引导中将列表转换为分组列表
我想用属性转换下面的列表,将类似的组分组,并使用JavaSpringBoot将子组值连接为下面的预期输出。这是我的密码在JavaSpring引导中将列表转换为分组列表,java,list,spring-boot,Java,List,Spring Boot,我想用属性转换下面的列表,将类似的组分组,并使用JavaSpringBoot将子组值连接为下面的预期输出。这是我的密码 for (JuniorAreaSubgroup value : lstJuniorAreaSubgroup) { juniorAreaSubgroupMap.setJuniorArea(value.getJuniorArea()); lstSubgroup.add(lstJuniorAreaSubgroup.stream().filter
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”, "G13AD”]
},
{
"group": "Cans",
"subgroup": [“G13DA”, "G13DB”, "G13DD”]
}
]
非常感谢您的帮助。您的数据看起来像JSON。本例将使用适当的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);
}
}
请将您的尝试作为起点发布。您好@Mick,我需要另外一种方法将G13DA值替换为G13,G23。您宁愿在构建数据(?)时这样做。
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);
}
}
{Cans=[G13DA, G13DB, G13DD], Tins=[G13AA, G13AD]}