当前位置: 首页 > 知识库问答 >
问题:

java8数组流到二维数组

颛孙飞鸾
2023-03-14

我是Java8的新手,不能使用流将一个数组映射到另一个二维数组。

boolean[][] pattern = {
            {true, true, false},
            {true, false, true},
            {false, true, true}
    };

和包含键的第二个数组。

0表示:从模式中取0元素

1表示:从模式中取1元素,以此类推

int[] keys = {2, 1, 0};

从这两个数组中,我想生成另一个二维数组。在这种情况下,结果如下所示:

boolean[][] result = {
                {false, true, true},
                {true, false, true},
                {true, true, false}
        };
public boolean[][] producePlan(int[] keys, boolean[][] pattern) {
        boolean[][] result = new boolean[keys.length][];
        for (int i = 0; i < keys.length; i++) {
            result[i] = pattern[keys[i]];
        }
        return result;
    }
Arrays.stream(keys).mapToObj(x -> pattern[x]).forEach(x -> System.out.println(Arrays.toString(x)));

请帮忙

共有1个答案

桓风史
2023-03-14

你可以这样做,

boolean[][] result = Arrays.stream(keys).mapToObj(i -> pattern[i]).toArray(boolean[][]::new);

由于您在map阶段之后有stream ,所以您只需要提供一个数组生成器函数。

 类似资料:
  • 我有一个这样的文本文件: ids.txt 我想读取这个文件并加载到二维数组中。我希望有一个类似于下面的数组: 如何解决此异常?

  • 我正在编写一个计算和绘制抛物线的小程序。但我在程序中有一小部分需要计算valuetable。 二次函数如下:

  • 二维数组 #include <stdio.h> #include <stdlib.h> //01.二维数组: // 1.二维数组的内存存储原理: // 所有数组,无论一维数组,二维数组,多维数组,在内存当中的 // 存储实质都是采取的连续存储方式 // 2.二维数组的规律赋值方式: // 先进行行遍历,在进行列遍历,再逐个进行逐个数组元素的具体赋值操作 //

  • 问题内容: 我试图摆脱n维数组。有没有一种不错的API方法可以做到这一点?我知道两个流的连接方法。 问题答案: 假设您要以行优先的方式顺序处理数组的数组,这应该可以工作: 首先,它调用方法(其中推断为)以获取,然后方法将每个元素映射到using 方法。

  • 我目前正在学习如何做流,同时做一些作业以获得乐趣(代码的问世)。虽然我知道如何使用临时数组来实现,但我不知道流的正确语法,甚至不知道是否可以在一行中实现。

  • 主要内容:创建二维数组,初始化二维数组,获取单个元素,获取全部元素,获取整行元素,获取整列元素为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来。二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列。下面简单了解一下二维数组,包括数组的声明和初始化。 创建二维数组 在 Java 中二维数组被看作数组的数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。Java 并不直接支持二维数组,但是