數組
- 不支持c數組,java數組是內置容器類型,因此java數組length運行期確定,非編譯期確定
- java數組存儲基本類型對象值,存儲類類型對象引用
- java數組屬於類類型,因此數組元素默認初始化爲0
- n(n>1)維數組本質是一維數組,只不過數組元素類型爲n-1維數組引用
public class JavaArray
{
static Random rand = new Random();
static int pRand(int mod)
{
return Math.abs(rand.nextInt()) % mod + 1;
}
//static int arr_c[3]; //c array
static int arr_j[]; //java array
public static void array1()
{
int arr1_1[] = new int[3];
int arr1_2[] = {1, 2, 3};
int arr1_3[] = new int[]{4, 5, 6};
int arr2_1[][] = new int[3][4];
int arr2_2[][] = {
{1, 2, 3},
{4, 5, 6},
};
int arr3_1[][][] = new int[pRand(3)][][];
for(int i = 0; i < arr3_1.length; ++i)
{
arr3_1[i] = new int[pRand(4)][];
for(int j = 0; j < arr3_1[i].length; ++j)
{
arr3_1[i][j] = new int[pRand(5)];
for(int k = 0; k < arr3_1[i][j].length; ++k)
{
arr3_1[i][j][k] = i + j + k;
}
}
}
for(int i = 0; i < arr3_1.length; ++i)
{
for(int j = 0; j < arr3_1[i].length; ++j)
{
for(int k = 0; k < arr3_1[i][j].length; ++k)
{
System.out.println("arr3_1[" + i + "][" + j + "][" + k + "] = " + arr3_1[i][j][k]);
}
}
}
}
public static void array2()
{
Integer arr1_1[] = new Integer[3];
Integer arr1_2[] = {new Integer(1), new Integer(2), new Integer(3)};
Integer arr1_3[] = new Integer[]{new Integer(4), new Integer(5), new Integer(6)};
Integer arr2_1[][] = new Integer[3][4];
Integer arr2_2[][] = {
{new Integer(1), new Integer(2), new Integer(3)},
{new Integer(4), new Integer(5), new Integer(6)},
};
Integer arr3_1[][][] = new Integer[pRand(3)][][];
for(Integer i = 0; i < arr3_1.length; ++i)
{
arr3_1[i] = new Integer[pRand(4)][];
for(int j = 0; j < arr3_1[i].length; ++j)
{
arr3_1[i][j] = new Integer[pRand(5)];
for(int k = 0; k < arr3_1[i][j].length; ++k)
{
arr3_1[i][j][k] = new Integer(i + j + k);
}
}
}
for(int i = 0; i < arr3_1.length; ++i)
{
for(int j = 0; j < arr3_1[i].length; ++j)
{
for(int k = 0; k < arr3_1[i][j].length; ++k)
{
System.out.println("arr3_1[" + i + "][" + j + "][" + k + "] = " + arr3_1[i][j][k]);
}
}
}
}
public static void main(String[] args)
{
System.out.println("primitive type: ");
array1();
System.out.println("class type: ");
array2();
}
}
output:
primitive type:
arr3_1[0][0][0] = 0
arr3_1[0][0][1] = 1
arr3_1[0][0][2] = 2
arr3_1[0][0][3] = 3
arr3_1[0][1][0] = 1
arr3_1[0][1][1] = 2
arr3_1[0][1][2] = 3
arr3_1[0][1][3] = 4
arr3_1[0][2][0] = 2
arr3_1[0][2][1] = 3
arr3_1[0][2][2] = 4
arr3_1[1][0][0] = 1
arr3_1[1][0][1] = 2
arr3_1[1][0][2] = 3
arr3_1[1][0][3] = 4
arr3_1[1][1][0] = 2
arr3_1[1][2][0] = 3
arr3_1[1][2][1] = 4
arr3_1[1][2][2] = 5
arr3_1[1][2][3] = 6
class type:
arr3_1[0][0][0] = 0
arr3_1[0][1][0] = 1
arr3_1[0][1][1] = 2
arr3_1[0][1][2] = 3
arr3_1[0][1][3] = 4
arr3_1[0][1][4] = 5
注:arr1_3右值可直接作爲實參傳遞給方法