gpt4 book ai didi

java - 使用流将对象列表转换为映射

转载 作者:行者123 更新时间:2023-11-29 06:48:23 25 4
gpt4 key购买 nike

我有一个 A 类对象列表:

List<A> list;
class A {
String name;
String lastname;
//Getter and Setter methods
}

我想将此列表转换为从名称到一组姓氏的映射:

Map<String, Set<String>> map;

例如,对于以下列表:

约翰·阿切尔、约翰·阿盖特、汤姆·凯南宁、汤姆·巴伦、辛迪·金

map 将是:

John -> {Archer, Agate},Tom -> {Keinanen, Barren},Cindy -> {King}

我尝试了以下代码,但它返回了一个从名称到 A 类对象的映射:

list.stream.collect(groupingBy(A::getFirstName, toSet()));

最佳答案

Map< String, Set<String>> map = list.stream()
.collect(
Collectors.groupingBy(
A::getFirstName, Collectors.mapping(
A::getLastName, Collectors.toSet())));

您走在正确的轨道上,您需要使用:

  • Collectors.groupingByfirstName 分组.

  • 然后使用像Collectors.mappping这样的下游收集器作为 Collectors.groupingBy 的第二个参数映射到 lastName .

  • 然后最终将其收集在 Set<String> 中通过调用 Collectors.toSet :

关于java - 使用流将对象列表转换为映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58001003/

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