gpt4 book ai didi

java - 如何在 Java 8 中使用流将几个字段收集到一个列表中?

转载 作者:搜寻专家 更新时间:2023-10-30 21:45:48 26 4
gpt4 key购买 nike

例如,我的 Person 类带有 namesurname 字段。

我想从 PersonList 中收集 StringList(名字和姓氏全部在一起) ,但似乎我不能对每个列表使用两次映射或每个列表不能使用两次流。

我的代码是:

persons.stream()
.map(Person::getName)
.collect(Collectors.toSet())
.stream().map(Person::getSurname)
.collect(Collectors.toList())

但它一直告诉我 Person::getSurname 非静态方法不能从静态上下文中引用。

我做错了什么?

最佳答案

要在同一个列表中同时获取名字和姓氏,您可以这样做:

List<String> set = persons.stream()
.flatMap(p -> Stream.of(p.getName(),p.getSurname()))
.collect(Collectors.toList());

关于java - 如何在 Java 8 中使用流将几个字段收集到一个列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42028143/

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