java8如何创建嵌套列表?

标签 java java-8

学习和使用 Java8。尝试创建二维数组。

final List<Integer> row = IntStream.range(0, 3)
                                   .boxed()
                                   .collect(Collectors.toList());

List<List<Integer>> arr2D = IntStream.range(0, 3)
                                     .map(i -> arr2D.add(i, row)); // will not compile

如何将行放入二维数组?这是使用 Java8 的正确方法吗?

最佳答案

你的问题提到数组,但你的代码只有列表。如果要生成嵌套列表:

List<List<Integer>> arr2D = IntStream.range(0, 3)
                                     .mapToObj(i -> row)
                                     .collect(Collectors.toList());

当然,使用此代码,所有内部列表将是相同的(即相同的实例)。如果您希望每个内部列表都是不同的实例:

List<List<Integer>> arr2D = IntStream.range(0, 3)
                                     .mapToObj(i -> new ArrayList<Integer>(row))
                                     .collect(Collectors.toList());

关于java8如何创建嵌套列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31571333/

相关文章:

java 8 javafx getBehavior() 替代方案?

java - 使用 Google Analytics API 检索页面浏览量的指南

java - 查找字符串的最大出现次数 - 并列案例

java - 在 Java 8 中是否有更好的方法来检查这种情况?

java - 使用 JDBC 的简单 Java 插入

java - 将数组迭代转换为 lambda 表达式

java - 静态上下文无法访问收集器中的非静态

Java CXF WS 客户端 - gZip HTTP REQUEST HEADER 被忽略

java - GridView 行不膨胀

java - Websocket flutter 连接