java - map 值在数组中。所有值都需要转换为列表并将所有值组合为结果列表

标签 java java-8 java-stream

我有一个以数组作为值的 map 。现在所有这些数组都需要转换为列表。最后,所有列表应该合并为一个列表。

现在可用,

Map<String, Class1[]> master_map= new HashMap<>();

Class1 c1 = new Class("Name1", "Address1");
Class1 c2 = new Class("Name2", "Address2");
ClassArray[0] = c1;
ClassArray[1]= c2;
master_map.put("FirstValue", ClassArray);

Class1 c3 = new Class("Name3", "Address3");
Class1 c4 = new Class("Name4", "Address4");
ClassArray[0] = c3;
ClassArray[1]= c4;
master_map.put("SecondValue", ClassArray);}

现在我想得到如下结果。

List<Class1> result  = new ArrayList<>();
//This above list to be as {c1, c2, c3, c4}

期待java8中的代码

最佳答案

您需要在条目流中展平您的内部数组:

List<Class1> result = master_map.values()
    .stream()
    .flatMap(Arrays::stream) //use flatMap to flatten nested stream
    .collect(Collectors.toList());

关于java - map 值在数组中。所有值都需要转换为列表并将所有值组合为结果列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54689831/

相关文章:

Java:静态初始化 block 什么时候有用?

Java流-在GroupBy之后获取内部元素

java - 在多个线程之间共享流实例是否安全?

java - Java 类 CookieHandler 和 CookieManager 如何工作?

java - 使用 JDBC 创建 mysql 数据库

java - 如何在拖动搜索栏时更新 TextView

java - 如何在级联流中返回内部方法的结果

java - 无法理解 Java 8 的 Function<>

java - 获取符合条件的流的第一个元素

java - 如何直接从列表的流 -> 过滤器中收集值?