当前位置: 首页 > 知识库问答 >
问题:

使用Lambdas将list转换为map

金成济
2023-03-14

我想将列表转换为映射,如下所示。下面是一个例子。

我有学生列表类似下面的代码片段。从其中得到一个Hasmap,其中Key为Integer(也就是年龄),value为list。

映射[[10,{1}],[20,{2,3,4}],[30,{5}].[40,{6}]];

private static List<Person> getPersonTestData() {
    List<Person> personList = new ArrayList<>();
    personList.add(Person.of(1, "First1", "Last1", 10));
    personList.add(Person.of(2, "First2", "Last2", 20));
    personList.add(Person.of(3, "First3", "Last3", 20));
    personList.add(Person.of(4, "First4", "Last4", 20));
    personList.add(Person.of(5, "First5", "Last5", 30));
    personList.add(Person.of(6, "First6", "Last6", 40));

    return personList;
}

提前致谢.......!

共有1个答案

唐高卓
2023-03-14

您可以在下游使用groupingbymapping来实现:

Map<Integer, List<Integer>> ageToIdsMap = getPersonTestData().stream()
        .collect(Collectors.groupingBy(Person::getAge,
                Collectors.mapping(Person::getId, Collectors.toList())));
 类似资料:
  • 这一点总的来说 谁能告诉我我哪里错了,这不是重复的答案,我试了所有的可能,我已经通过网络,但没有一个给我正确的答案,如果你能帮助我,我很高兴。这是我的完整代码 错误:它有点笨拙,它在这里是完整的

  • 我有我想分批处理的编号列表。

  • 我有一个简单的循环,将元素从一个

  • 我试图将JSON字符串(必须是列表)转换为对象列表: 这是我的服务。class: 我得到了: InvalidDefinitionException:无法构造的实例(不存在像默认构造那样的创建者): 更新: 但仍然是个例外: InvalidDefinitionException:无法构造的实例(不存在像默认构造那样的创建者):

  • 问题内容: 在我的Android项目中,我试图将收到的JSONArray转换为List。借助这个SO答案,我走得更远。我现在有以下代码: 不幸的是,它在最后一行抱怨Gson类型的fromJson(String,Type)方法不适用于参数(JSONArray,Type)。我真的不知道该怎么解决。 有人知道我该怎么解决吗? 问题答案: 如果您在此处看到答案,您会注意到该方法中的第一个参数是(json对

  • 我在MongoDB中使用Java驱动程序3.0,以便通过Web服务发送JSON。 当我想将文档对象(org.bson.文档)转换为JSON时,我使用,当我想将JSON转换为文档对象时,我使用。 但是,当我处理文档列表时(如JSON中所示: