java - 迭代一个集合,然后仅执行一次流连接集合的所有元素

标签 java dynamic collections java-stream concatenation

我有一个HashMap<String, List<User>>
我想返回一个 allList 合并形式 all List<User>的 HashMap 。
并且只用一次触发语句Stream.concat(list1, Stream.concat(list2, Stream.concat(list3,Stream.concat(list4,...))))...
我的目标是更高的性能。

最佳答案

如果您想要所有List<User>的所有元素的单个流s,你应该使用 flatMap ,不是Stream.concat :

Stream<User> users = map.values().stream().flatMap(List::stream);

然后您可以对该Stream进行任何您需要的处理。 。例如,创建 List所有User s:

List<User> userList = map.values()
                         .stream()
                         .flatMap(List::stream)
                         .collect(Collectors.toList());

关于java - 迭代一个集合,然后仅执行一次流连接集合的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50251687/

相关文章:

在 C 中创建矩阵

angular - 在 Angular 中动态使用 setValidators 后如何不丢失初始化的验证器?

android - 在 Android 中按字母顺序排序列表

java - 尽管定义了 RequestContextListener,但创建名称为 'scopedTarget.oauth2ClientContext' 的 bean 时出错

java - 如何解析 Guava 对 Selenium 的影响?

java - App Engine channel API 连接和断开

javascript - 动态创建按钮的 onclick 函数中的变量

java - 如何创建自定义顺序来对 Java String 电话号码进行排序?

java - 如何返回多维数组作为 JUnit 测试的参数集合?

java - 如何按天比较DateTime?