java - Stream<Set<Object>> 而不是 Stream<Object>

标签 java java-8 java-stream

我有一个 Person 类,它有一组对象联系人。我想从人员流中获取联系人流。

public class Persons{
     private Set<Contact> contacts;
}

persons.stream().map(Person::getContacts);

给我Stream<Set<Contact>>而是Stream<Contact>

任何建议或帮助将不胜感激,因为我对 Java 8 和 Streams 还很陌生。

最佳答案

你可以试试这个:

Stream<Contact> contacts = persons.stream().flatMap(p -> p.getContacts().stream());

或者:

Stream<Contact> contacts = persons.stream().map(Person::getContacts).flatMap(Set::stream);

查看this优秀的帖子,以便您了解mapflatMap之间的区别。

关于java - Stream<Set<Object>> 而不是 Stream<Object>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41857541/

相关文章:

java - 为什么我的 JavaFX TableView 是空的?

java - 基于值的类混淆

java - 如何获得 5 年前的现在

java - 对数组进行排序后获取元素的排名

java - 如何从 Java8 中的对象流中获取公共(public)项

java - 什么是堆栈溢出错误?

java - 使用 nextFloat() 时线程 "main"java.util.InputMismatchException 中出现异常

java - 如何只获取字符串的最后一个字母而不是整个字符串

java:检查数组1中的任何元素是否存在于数组2中

Java 8 帖子分组依据