java 使用lambda表达式将ListMap按照a属性分组并算出每组的数据个数
可以使用Java 8中的Stream API和lambda表达式来实现将List
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("a", "group1");
map1.put("b", 1);
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("a", "group2");
map2.put("b", 2);
list.add(map2);
Map<String, Object> map3 = new HashMap<>();
map3.put("a", "group1");
map3.put("b", 3);
list.add(map3);
Map<String, Object> map4 = new HashMap<>();
map4.put("a", "group2");
map4.put("b", 4);
list.add(map4);
Map<String, Object> map5 = new HashMap<>();
map5.put("a", "group1");
map5.put("b", 5);
list.add(map5);
Map<String, Object> map6 = new HashMap<>();
map6.put("a", "group2");
map6.put("b", 6);
list.add(map6);
Map<String, Long> groupCount = list.stream()
.collect(Collectors.groupingBy(m -> (String) m.get("a"), Collectors.counting()));
System.out.println(groupCount);
}
}
运行上述代码,输出结果为:
{group1=3, group2=3}
以上代码通过Stream API中的collect方法和Collectors.groupingBy方法,将List
原文地址: http://www.cveoy.top/t/topic/isve 著作权归作者所有。请勿转载和采集!