ListMapStringString怎么分组
可以使用Java 8的Stream API来对List<Map<String, String>>进行分组操作。下面是一个示例代码:
import java.util.*;
import java.util.stream.Collectors;
public class GroupingExample {
public static void main(String[] args) {
List<Map<String, String>> list = new ArrayList<>();
Map<String, String> map1 = new HashMap<>();
map1.put("name", "John");
map1.put("age", "25");
map1.put("gender", "Male");
list.add(map1);
Map<String, String> map2 = new HashMap<>();
map2.put("name", "Jane");
map2.put("age", "30");
map2.put("gender", "Female");
list.add(map2);
Map<String, String> map3 = new HashMap<>();
map3.put("name", "Tom");
map3.put("age", "25");
map3.put("gender", "Male");
list.add(map3);
// 根据age分组
Map<String, List<Map<String, String>>> groupedByAge = list.stream()
.collect(Collectors.groupingBy(m -> m.get("age")));
// 输出分组结果
groupedByAge.forEach((age, group) -> {
System.out.println("Age: " + age);
group.forEach(System.out::println);
System.out.println();
});
}
}
输出结果:
Age: 25
{gender=Male, name=John, age=25}
{gender=Male, name=Tom, age=25}
Age: 30
{gender=Female, name=Jane, age=30}
以上代码通过Stream的collect方法结合Collectors.groupingBy实现了根据age属性进行分组。分组结果以Map<String, List<Map<String, String>>>的形式返回,其中键是分组的属性值,值是对应分组的元素列表
原文地址: http://www.cveoy.top/t/topic/h19Y 著作权归作者所有。请勿转载和采集!