使用Java 8中的Stream API和lambda表达式可以实现将List<Map>按照a属性分组并计算每组的数据个数。\n\njava\nimport java.util.ArrayList;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\nimport java.util.stream.Collectors;\n\npublic class Main {\n\n public static void main(String[] args) {\n List&lt;Map&lt;String, Object&gt;&gt; list = new ArrayList&lt;&gt;();\n\n Map&lt;String, Object&gt; map1 = new HashMap&lt;&gt;();\n map1.put("a", "group1");\n map1.put("b", 1);\n list.add(map1);\n\n Map&lt;String, Object&gt; map2 = new HashMap&lt;&gt;();\n map2.put("a", "group2");\n map2.put("b", 2);\n list.add(map2);\n\n Map&lt;String, Object&gt; map3 = new HashMap&lt;&gt;();\n map3.put("a", "group1");\n map3.put("b", 3);\n list.add(map3);\n\n Map&lt;String, Object&gt; map4 = new HashMap&lt;&gt;();\n map4.put("a", "group2");\n map4.put("b", 4);\n list.add(map4);\n\n Map&lt;String, Object&gt; map5 = new HashMap&lt;&gt;();\n map5.put("a", "group1");\n map5.put("b", 5);\n list.add(map5);\n\n Map&lt;String, Object&gt; map6 = new HashMap&lt;&gt;();\n map6.put("a", "group2");\n map6.put("b", 6);\n list.add(map6);\n\n Map&lt;String, Long&gt; groupCount = list.stream()\n .collect(Collectors.groupingBy(m -&gt; (String) m.get("a"), Collectors.counting()));\n\n System.out.println(groupCount);\n }\n}\n\n\n运行上述代码,输出结果为:\n\n\n{group1=3, group2=3}\n\n\n以上代码通过Stream API中的collect方法和Collectors.groupingBy方法,将List<Map>按照a属性进行分组,并使用Collectors.counting方法计算每组的数据个数。最终输出每组的数据个数。

Java 使用 Lambda 表达式对 List<Map> 按属性分组并计数

原文地址: https://www.cveoy.top/t/topic/p95n 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录