之前對java中的數組一直是一知半解,特別是數組中的長度問題。今天對這個問題也算是小有理解,算是對java數組的有了更進一步的瞭解吧。不說了,先來例子再說:
eg code:
package com.test;public class Test {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubfinal int TABLE_SIZE = 5; final int TABLE_SIZE1 = 6; final int TABLE_SIZE2 = 7; int[][][] table1 = new int[TABLE_SIZE][TABLE_SIZE1][TABLE_SIZE2]; int[][] table2 = new int[TABLE_SIZE][TABLE_SIZE1]; int[] table3 = new int[TABLE_SIZE]; int a =table1[4][0].length; int b =table2[2].length; int c =table3.length; System.out.println(a); System.out.println(b); System.out.println(c); }}
這個例子的輸出結果是什麼呢?
相信大家對一維數組沒有什麼問題,那我們就來看看二維數組數組到底是怎麼回事吧。
Java中多維陣列被看作數組的數組。初看這句話,確實有點不是很好理解(特別對於我這樣的菜鳥層級的啊)。用例子說話吧。就上例:
int b =table2[2].length;
就這個b它結果輸出的TABLE_SIZE1的值。我們知道table2是一個二維數組,而length方法取出的結果是數組中的長度而且一次取出數組中的長度,即:如果是一位元組的話,直接取出的話就是一位元組的長度,如:int c =table3.length; 此時c的結果就是一位元組table3的長度即TABLE_SIZE;如果 int
b =table2[2].length;換成 int b =table2.length; 此時b輸出的結果是二維數組中的第一維數組的長度即TABLE_SIZE(即跟c相等)
,而如果是int b =table2[2].length,注意此時length的長度是二維數組table2的第二維數組的長度即TABLE_SIZE1 ,而且只要table2[2].這個中括弧中的值x是在 0到其第一維數組的長度減1即(TABLE_SIZE-1),其table2[x].length的長度都是第二維數組的長度,以此類推,例子中a的值就是TABLE_SIZE2。
所以例子中的結果應該是:
7
6
5