「java三维数组赋值」java一维数组赋值
今天给各位分享java三维数组赋值的知识,其中也会对java一维数组赋值进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、如何理解java中的三维数组?
- 2、java 三维数组向二维数组赋值出错
- 3、java三维数组
- 4、Java 多维数组
- 5、Java三维数组拷贝问题,高手指点
- 6、java 如何将三个一维数组拼成一个三维数组?
如何理解java中的三维数组?
3维数组还是很容易理解的
先讲2维数组,很直接的就能联想到一个平面结构的行、列
变成3维后 就成了一个立方体结构,如同常见的玩具魔方一样,相对于2维,就多了一个层的概念
int SanWei[][][]={{{5,2,3},{4,5,6}},{{87,7,5},{10,11,12}}};
第一层int SanWei[0][*][*] 是一个二维数组如下
int SanWei[0][0][*] :{5,2,3}
int SanWei[0][1][*] :{4,5,6}
第二层int SanWei[1][*][*] 是一个二维数组如下
int SanWei[1][0][*] :{87,7,5}
int SanWei[1][1][*] :{10,11,12}
用简单的平面、和立方体来形容会比较容易理解,画图太麻烦了,你自己手绘一下就行
2、3维比较容易理解,4维 可以借用3维立方体来理解,魔方的每一块 都是一个小的魔方,再高维的话,我的想象力不够用了
java 三维数组向二维数组赋值出错
public class MapFactory {
static byte[][][] bigmap = {
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 5, 9, 9, 1, 1, 1, 1, 1 },
{ 1, 9, 2, 2, 1, 1, 1, 1, 1 },
{ 1, 9, 2, 9, 1, 1, 1, 4, 1 },
{ 1, 1, 1, 9, 1, 1, 1, 4, 1 },
{ 1, 1, 1, 9, 9, 9, 9, 4, 1 },
{ 1, 1, 9, 9, 9, 1, 9, 9, 1 },
{ 1, 1, 9, 9, 9, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1 }, },
{ { 0, 0, 1, 1, 1, 0, 0, 0 }, { 0, 0, 1, 4, 1, 0, 0, 0 },
{ 0, 0, 1, 9, 1, 1, 1, 1 }, { 1, 1, 1, 2, 9, 2, 4, 1 },
{ 1, 4, 9, 2, 5, 1, 1, 1 }, { 1, 1, 1, 1, 2, 1, 0, 0 },
{ 0, 0, 0, 1, 4, 1, 0, 0 }, { 0, 0, 0, 1, 1, 1, 0, 0 }, },
};
@SuppressWarnings("null")
static byte[][] getMaps() {
byte[][] map = new byte[bigmap[0].length][bigmap[0][0].length];//数组要初始化,
for (int i = 0; i bigmap.length; i++)
for (int j = 0; j bigmap[0].length; j++)
for (int k = 0; k bigmap[0][0].length; k++) {
map[j][k] = bigmap[i][j][k];//二维数组要先初始化,才能被赋值,
}
return map;
}
public static void main(String[] args) {
getMaps();//我给了个无参数的,默认将三维数组的第一个二维数组赋值给你定义的二维数组了
}
}
要对一个数组进行赋值,数组对象必须现在堆内存中存在才能赋值,建议看看数组产生时在堆栈中的内存图若需要可以提供
java三维数组
简单来讲就是说,第三个[
]代表的是一个数组,里面可以装{1,2,3},此时,1是元素,2也是元素。第二个[
]代表的是将多个类似第三个那样数组,再装到一个新的数组表示的就是{{1,2,3},{4,5,6},{7,8,9}},此时(1,2,3)是一个元素,(4,5,6)是一个元素。第一个[
]代表的就是将多个类似第二个那样的数组又装到一个新的数组里,通常表示方式就是{{{1,2},{3,4}},{{5,6},{7,8}}}。此时((1,2),(3,4))是一个元素,((5,6)(7,8))是一个元素。同理可以得到四维五维数组,不过一般很少会用到这么复杂
Java 多维数组
public class TestArray {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] matrix = new int[5][];
for(int i = 0; i 5; i ++) {
matrix[i] = new int[i];
System.out.print("matrix[" + i + "]is");
for(int j = 0; j i; j++) {
matrix[i][j] = i * j;
System.out.print(matrix[i][j]);
if(i - j 1) {
System.out.print(",");
}
}
System.out.println("");
}
}
}
顺便说说,二楼的少了个逗号 (*^__^*)
Java三维数组拷贝问题,高手指点
你那个三位数组定义错了。。
还有就是新数组要初始化,也就是int[][][] des = new int[2][2][2];要指明长度。。
下面是个例子
int[][][] src = { { { 1, 2 }, { 3, 4 } }, { { 5, 6 }, { 7, 8 } } };
int[][][] dest = new int[2][2][2];
System.arraycopy(src, 0, dest, 0, src.length);
for (int i = 0; i 2; i++)
for (int j = 0; j 2; j++)
for (int k = 0; k 2; k++)
System.out.println(dest[i][j][k]);
希望能帮到你。。
java 如何将三个一维数组拼成一个三维数组?
public class test{
public static void main(String[] args){
int [] arr1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 假设这是你的坐标(1,2),(3,4),……
int [][] arr2 = new int[arr1.length / 2][2]; // 创建一个行为原数组长度一半,列为2的二维数组
for (int i = 0; i arr1.length; i++) {
// 遍历原数组,赋值给新数组
arr2[i / 2][i % 2] = arr1[i];
}
for (int i = 0; i arr2.length; i++ ) {
for (int j = 0; j arr2[i].length; j++ ) {
System.out.print(arr2[i][j] + " ");
}
System.out.println();
}
}
}
输出
1 2
3 4
5 6
7 8
9 10
关于java三维数组赋值和java一维数组赋值的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-14,除非注明,否则均为
原创文章,转载请注明出处。