Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数据插入到二维字节[]数组中_Java_Arrays_Multithreading - Fatal编程技术网

Java 将数据插入到二维字节[]数组中

Java 将数据插入到二维字节[]数组中,java,arrays,multithreading,Java,Arrays,Multithreading,我是Java新手,尝试使用二维字节[]类型。我已经创建了一个2Dbyte[]数组,如下所示。但是,每当我尝试向它插入一些数据时,它都会给出一个错误提示:NullPointerException byte[][][] Requisition = new byte[10][][]; byte[] someinput = ("example").getBytes(); Requisition[0][0]=someinput; System.out.println("Pr

我是Java新手,尝试使用二维字节[]类型。我已经创建了一个2D
byte[]
数组,如下所示。但是,每当我尝试向它插入一些数据时,它都会给出一个错误提示:
NullPointerException

    byte[][][] Requisition = new byte[10][][];
    byte[] someinput = ("example").getBytes();
    Requisition[0][0]=someinput;
    System.out.println("Printing:" + Requisition[0][0].toString());
    etc.. 
我插入到这个2D数组中的数据类型是类型
byte[]
。因为我插入的是加密数据,所以这些数据的格式将是字节[],而不是字节

我想要
请求
数组为一行保存两个输入。比如说

Requisition[0][1]=someinput1;
Requisition[0][2]=someinput2;
我要插入的
someinput1
不是类型
byte
。我插入的数据将是
字节[]
类型


我的意思是byte[]是(使用平台默认字符集的字节序列,将结果存储到新的字节数组中。)

当您执行
arr[n][m]
时,您访问的是任何类型的元素
arr
。在您的情况下,这是一个
字节
。如果要将阵列指定给二维阵列,只需执行以下操作:

Requisition[0] = someinput;
而且

    byte[][] Requisition = new byte[10][];
    byte[] someinput = ("example").getBytes();
    Requisition[0]=someinput;//These insertion will happens in a loop later
用…测试

    for (byte b : Requisition[0])
        System.out.println(b);

当然,这个答案是基于这样一个事实,即你实际上并没有处理2D数组,你有一个3D数组,这可能是错误地将数组插入单个元素的结果。如果没有,请将此逻辑应用于任何n维数组。

否,您没有创建二维数组。您创建了一个三维数组!-><代码>字节[1][2][3]

如果要创建二维数组,则需要声明表的列和单元格。这只是两个值,而不是像你那样的三个值。为了清晰起见,请看以下图片:

可以这样声明和填充二维数组:

int rows = 10;
int cols = 10;
int[][] twoDimension = new int[rows][cols];

for (int i = 0; i < twoDimension.length; i++) {
    for (int j = 0; j < twoDimension[i].length; j++) {
        twoDimension[i][j] = // Value you want to fill!
    }
}
应该是:

byte[][][] someinput = new byte[5][5][5];

然后可以将数据插入到该数组中

试着这样做:字节[][]请求=新字节[2][some int];字节[][]请求=新字节[2][];不是二维阵列,而是三维阵列
byte[][][] someinput = new byte[5][5][5];