一维数组还好说,二维数组的初始化有点晕,请举2个例子说明下二维数组初始化的方法,求详解。谢谢
解决方案 »
- 【在线急等】熟悉Swt高手请进,有难度的问题
- Java 容器排序问题,求助~
- 如何释放掉一个弹出对话框?
- 求救!非法的表达式开始!!
- 一道关于断言的题目
- 请问java中怎么把string转化成int类型?
- 菜鸟提问
- Jbuilder6中如何加载Microsoft SQL SERVER Driver
- 如果我从一个数据库一个表中提取一个值,然后根据这个值从另一个表中取数据,请问....
- tomcat 和 apache 的问题
- 100分求文中异常的解决方案-An unexpected error has been detected by Java Runtime Environment:
- hibernate 延时加载效率忘指导
int[][] a = {{1},{2,3},{4,5,6}};
//动态赋值
int[][] a = new int[3][]; //线给第一维数组申请内存
for (int i=0, j=0; i<a.length; i++) {
a[i] = new int[i+1]; //给第二维数组申请内存
for (int k=0; k<a[i].length; k++) {
a[i][k] = 1+(j++);
}
}
public class Test{ public static void main(String[] args) {
int[][] arrInt1 = {{1,2,3},{1,2,3}};
int[][] arrInt2 = {{1,2,3,4},{1,2,3}}; int[][] arrInt3 = new int[2][4];
arrInt3[0][0]=1;
arrInt3[0][1]=2;
arrInt3[0][2]=3;
arrInt3[0][3]=4;
arrInt3[1][0]=1;
arrInt3[2][1]=2;
arrInt3[3][2]=3;
arrInt3[4][3]=4;
int [][] arrInt4 = new int[2][];
arrInt3[0][0]=1;
arrInt3[0][1]=2;
arrInt3[0][2]=3;
arrInt3[0][3]=4;
arrInt3[1][0]=1;
arrInt3[2][1]=2;
arrInt3[3][2]=3;
arrInt3[4][3]=4;
String[][] str = new String[][]{{"1", "2"}, {"2"}};
// str = {{"1", "2"}, {"2"}}; // 重新复制会报错
String[][] sr = {{"1", "2"}, {"2"}};
sr = new String[][]{{"1", "2"}, {"2"}};; //重新复制不会报错
}
}
X=int, X[]=int[], 每个元素只能是int(int没有子类型)
X=String, X[]=String[], 每个元素只能是String(String没有子类型)
X=Object, X[]=Object[], 每个元素可以是任何类型(JDK1.5以后,1.5以前,不能是int之类原生类型)同样,这个X也能继续推广到数组。数组本身也是一种类型
X=int[],X[]=int[][]
第一维长度n,参考上面黑体字,这是一个长度为n的数组,每个元素的类型都是int[],或者其子类型(这里主要是null)。也就是说,只要满足第一维元素是int[](或其子类型)就可以了,并不要求每一个元素(int[])的长度一致。
因此,int[][] a = {{1},{2,3},{4,5,6},null};就是合法的。
<table border="1"><tr><td> </td><td>0</td><td>1</td><td>2</td></tr><tr><td>0</td><td>A</td><td>B</td><td>C</td></tr><tr><td>1</td><td>D</td><td>E</td><td>F</td></tr><tr><td>2</td><td>G</td><td>H</td><td>I</td></tr></table>
初始化方式如下:
String[][] array = new String[][] { { "A", "B", "C" },
{ "D", "E", "F" }, { "G", "H", "I" } };
这样可以对号入座了吧?
a[0][0] = 1, a[0][1] = 2, a[0][2] = 3,
a[1][0] = 4, a[1][1] = 5, a[1][2] = 6,
a[2][0] = 7, a[2][1] = 8, a[2][2] = 9
iArr[0] = new int[] {1, 2, 3};
iArr[1] = new int[] {4, 5, 6};
iArr[2] = new int[] {7, 8, 9};