java - 如何使用 Streams 将二维数组转换为二维列表?

标签 java multidimensional-array java-stream

我试过了 this StackOverflow 答案代码,但我收到错误 Cannot infer type argument(s) for <R> map(Function<? super T,? extends R>) :

//data is int[][]
Arrays.stream(data)
    .map(i -> Arrays.stream(i)
        .collect(Collectors.toList()))
            .collect(Collectors.toList());

最佳答案

Arrays.stream将遍历每个 int[]int[][] . 您可以转换 int[]IntStream . 然后,为了转换 int 的流s 到 List<Integer> , 您首先需要将它们装箱。 一次装箱到Integer s,您可以将它们收集到列表中。 最后收集List<Integer>的流放入列表中。

List<List<Integer>> list = Arrays.stream(data)
    .map(row -> IntStream.of(row).boxed().collect(Collectors.toList()))
    .collect(Collectors.toList());

Demo.

关于java - 如何使用 Streams 将二维数组转换为二维列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44357940/

相关文章:

Java8 : How to filter a map of List value via stream

java - 我在 Blackjack Java 中测试 Player 类有什么问题

java - 在 Jpanel 的多个实例上共享类的实例

java - 检查字符串是否包含除句点和问号之外的特殊字符 Java

c - 二维数组引用整个索引,而不是 C 中的单个单元格

asynchronous - 如何在不阻塞的情况下将 CompletableFuture<Stream<T>> 转换为 Stream<T>

java - 我如何反序列化字符串 Json Date?

c - 我的程序的输出令人困惑

javascript - 不能在函数中返回值/变量

java - 如何通过键集对 Map 进行排序?