之前對java中的數(shù)組一直是一知半解,特別是數(shù)組中的長度問題。今天對這個(gè)問題也算是小有理解,算是對java數(shù)組的有了更進(jìn)一步的了解吧。不說了,先來例子再說:
- package com.test;
- public class Test {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- final 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);
- }
- }
這個(gè)例子的輸出結(jié)果是什么呢?
相信大家對一維數(shù)組沒有什么問題,那我們就來看看二維數(shù)組數(shù)組到底是怎么回事吧。
Java中多維數(shù)組被看作數(shù)組的數(shù)組。初看這句話,確實(shí)有點(diǎn)不是很好理解(特別對于我這樣的菜鳥級(jí)別的啊)。用例子說話吧。就上例:
int b =table2[2].length;
就這個(gè)b它結(jié)果輸出的TABLE_SIZE1的值。我們知道table2是一個(gè)二維數(shù)組,而length方法取出的結(jié)果是數(shù)組中的長度而且一次取出數(shù)組中的長度,即:如果是一位數(shù)組的話,直接取出的話就是一位數(shù)組的長度,如:int c =table3.length; 此時(shí)c的結(jié)果就是一位數(shù)組table3的長度即TABLE_SIZE;如果 int b =table2[2].length;換成 int b =table2.length; 此時(shí)b輸出的結(jié)果是二維數(shù)組中的第一維數(shù)組的長度即TABLE_SIZE(即跟c相等) ,而如果是int b =table2[2].length,注意此時(shí)length的長度是二維數(shù)組table2的第二維數(shù)組的長度即TABLE_SIZE1 ,而且只要table2[2].這個(gè)中括號(hào)中的值x是在 0到其第一維數(shù)組的長度減1即(TABLE_SIZE-1),其table2[x].length的長度都是第二維數(shù)組的長度,以此類推,例子中a的值就是TABLE_SIZE2。
所以例子中的結(jié)果應(yīng)該是:
7
6
5