gpt4 book ai didi

java - java中HashMap的ArrayList上的GroupBy

转载 作者:行者123 更新时间:2023-12-02 10:48:08 26 4
gpt4 key购买 nike

我想对 HashMap 数据结构的 arrayList 进行“分组”。由于我的数据不固定,所以我没有任何固定的类。数据如下所示。

[{"name":"laxman","state":"Karnataka","Mobile":9034782882}, 
{"name":"rahul","state":"Kerala","Mobile":9034782882},
{"name":"laxman","state":"karnataka","Mobile":9034782882},
{"name":"ram","state":"delhi","Mobile":9034782882}]

上面的键不是固定的,所以,我不能为它提供类。数据和公式将是动态的。但现在,我将通过此示例来了解此数据的 Stream.Collector

现在,我想根据 namestate 获取计数,所以基本上我想对名称和状态进行分组并想得到计数。

我尝试使用Stream.Collector但无法实现我想要的。

最佳答案

您可以使用 Collectors.groupingBy 来完成此操作,使用 List 作为返回的 Map 的键:

Map<List<String>, Long> result = yourListOfMaps.stream()
.collect(Collectors.groupingBy(
m -> Arrays.asList(String.valueOf(m.get("name")), String.valueOf(m.get("state"))),
Collectors.counting()));

这很有效,因为 Java 中 List 的所有实现都一致地实现了 hashCodeequals,这对于每个要实现的类来说都是必须的。用作任何 Map 实现的键。

关于java - java中HashMap的ArrayList上的GroupBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52387606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com