【问题标题】:Convert Nested List of Integers to a two dimensional array using Streams ( List<List<Integer>> -> int[][] ) [duplicate]使用 Streams ( List<List<Integer>> -> int[][] ) 将嵌套的整数列表转换为二维数组
【发布时间】:2020-02-02 08:16:55
【问题描述】:

我搜索了类似的问题,但我只找到了不适用于这种情况的对象字符串:

想要使用流将List&lt;List&lt;Integer&gt;&gt; list 转换为int[][] array

到目前为止,我得到了这个:

int[][] array= list.stream().map(List::toArray)...

我以我发现的其他类似问题为基础。但是这些使用 String 并且不能使其适用于 Integers->int:

// Example with String 1:    
String[][] array = list.stream()
        .map(l -> l.stream().toArray(String[]::new))
        .toArray(String[][]::new);

// Example with String 2:    
    final List<List<String>> list = ...;
    final String[][] array = list.stream().map(List::toArray).toArray(String[][]::new);

【问题讨论】:

    标签: java java-8 java-stream


    【解决方案1】:

    您只需要对String[][]的解决方案做一些修改:

    List<List<Integer>> lists = ...;
    int[][] arrays = lists.stream()                                // Stream<List<Integer>>
            .map(list -> list.stream().mapToInt(i -> i).toArray()) // Stream<int[]>
            .toArray(int[][]::new);
    

    mapToInt(i -&gt; i) 正在拆箱每个Integer(即Integerint)。

    见:

    【讨论】:

      猜你喜欢
      • 2020-08-24
      • 2016-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多