現(xiàn)在java程序員的面試都十分注重對基本功的考察,java面試題大部分都是對java的基礎(chǔ)知識。Java算法、數(shù)據(jù)結(jié)構(gòu)以及數(shù)組都是學(xué)習(xí)java編程中的基礎(chǔ)知識,今天來學(xué)習(xí)java不規(guī)則數(shù)組的內(nèi)容,也是比較簡單,java零基礎(chǔ)的新手小白也可以學(xué)習(xí)。
所看到的數(shù)組與其他程序設(shè)計語言中提供的數(shù)組沒有多大區(qū)別,但實(shí)際存在著一些細(xì)微的差異,而這正是java語言的優(yōu)勢所在:java實(shí)際上沒有多維數(shù)組,只有一維數(shù)組。多維數(shù)組解釋為“數(shù)組的數(shù)組”。
例如,balances數(shù)組實(shí)際上是一個包含10個元素的數(shù)組,而每個元素又是一個由6個浮點(diǎn)數(shù)組成的數(shù)組,具體參見下圖的一個二維數(shù)組:
表達(dá)式balances[i]引用第i個子數(shù)組,也就是二維表的第i行。它本身也是一個數(shù)組,balances[i][j]引用這個數(shù)組的第j項(xiàng)。由于可以單獨(dú)地存取數(shù)組的某一行,所以可以對兩行進(jìn)行交換。
還可以很方便地構(gòu)造一個java不規(guī)則數(shù)組,即數(shù)組的每一行有不同的長度。下面是一個典型的例子。在這個例子中,創(chuàng)建一個數(shù)組,第i行第j列將存放“從i個數(shù)值中抽取j個數(shù)值”產(chǎn)生的結(jié)果。
因?yàn)閖不可能大于i,所以矩陣是三角形的。第i行有i+1個元素。(允許抽取0個元素,這也是一種選擇。)要想創(chuàng)建一個java不規(guī)則數(shù)組,首先需要分配一個具有所含行數(shù)的數(shù)組。
int[][]odds = new int[NMAX + 1][];
接下來,分配這些行。
for(int n =0;n<= X; ntt)
odds[n] = new int[n + 1];
在分配了數(shù)組之后,假定沒有超出邊界,就可以采用通常的方式訪問其中的元素了。
最后給出一個java不規(guī)則數(shù)組的程序:
上面的內(nèi)容給出了java不規(guī)則數(shù)組的使用方法,希望大家都能學(xué)會java不規(guī)則數(shù)組的知識,有不明白有疑問或者想學(xué)習(xí)更多java知識的朋友們,可以通過觀看學(xué)習(xí)java視頻教程的方式來學(xué)習(xí),不斷提高自己的java水平。