白嫖福利岂膳!阿里P7大神梳理的Java數(shù)組詳細(xì)知識點(diǎn)誓竿,太實(shí)用了

Hello,今天給各位童鞋們分享Java數(shù)組谈截,趕緊拿出小本子記下來吧筷屡!

一涧偷、一維數(shù)組

(1)聲明數(shù)組變量

為了在程序中使用數(shù)組,必須聲明一個(gè)引用數(shù)組的變量毙死,并指明數(shù)組的元索類型燎潮。

聲明數(shù)組變量的語法:

elementType[] arrayRefVar;//(元素類型[] 數(shù)組引用變量 ;)

elementType arrayRefVar[];//(元素類型 數(shù)組引用變量[];)

大多數(shù) Java 應(yīng)用程序員喜歡使用第一種風(fēng)格,因?yàn)樗鼘?shù)組類型與變量名分開了

elementType

可以是任意數(shù)據(jù)類型扼倘,數(shù)組中所有的元素都必須具有相同的數(shù)據(jù)類型

arrayRefVar

是數(shù)組變量名确封,遵循用戶自定義標(biāo)識符規(guī)則

(2)數(shù)組創(chuàng)建及初始化

不同于基本數(shù)據(jù)類型變量的聲明,聲明一個(gè)數(shù)組變量時(shí)并不在內(nèi)存中給數(shù)組分配任何空間再菊。它只是創(chuàng)建一個(gè)對數(shù)組的引用的存儲(chǔ)位置爪喘。

當(dāng)給數(shù)組分配空間時(shí),必須指定該數(shù)組能夠存儲(chǔ)的元素個(gè)數(shù)纠拔,從而確定數(shù)組大小秉剑。創(chuàng)建數(shù)組之后就不能再修改它的大小。

為數(shù)組變量分配內(nèi)存空間

elementType[] arrayRefVar = new elementType[arraySize];

(元素類型[] 數(shù)組引用變量 =new 元素類型[ 數(shù)組大小];)

elementType arrayRefVar[] = new elementType[arraySize];

(元素類型數(shù)組引用變量 =new 元素類型[ 數(shù)組大小];)

數(shù)組初始化

數(shù)組元素的默認(rèn)值:

當(dāng)創(chuàng)建數(shù)組后稠诲,它的元素被賦予默認(rèn)值侦鹏,數(shù)值型基本數(shù)據(jù)類型的默認(rèn)值為 0, char 型的默認(rèn)值為 '\u0000',boolean 型的默認(rèn)值為 false吕粹。

創(chuàng)建數(shù)組對象并同時(shí)賦予初始值

將聲明數(shù)組种柑、創(chuàng)建數(shù)組和初始化數(shù)組結(jié)合到一條語句中

elementType[] arrayRefVar = {value0, value1, valuek}

數(shù)組初始化語法中不使用操作符 new。使用數(shù)組初始化語法時(shí)匹耕,必須將聲明聚请、創(chuàng)建和初始化數(shù)組都放在一條語句中。將它們分開會(huì)產(chǎn)生語法錯(cuò)誤稳其。

初始化匿名數(shù)組:

new elementType[]{value0,value1,value2...};

這種表示方法將創(chuàng)建一個(gè)新數(shù)組并利用括號中提供的值進(jìn)行初始化驶赏,數(shù)組的大小就是初始值的個(gè)數(shù),使用這種語法形式可以在創(chuàng)建新變量的情況下重新初始化數(shù)組既鞠。

arrayRefVar = new elementType[]{value0,value1,value2...};

(3)訪問數(shù)組元素

數(shù)組元素可以通過下標(biāo)訪問煤傍。數(shù)組下標(biāo)其范圍從0開始到arrayRefVar.length-1結(jié)束。

當(dāng)給數(shù)組分配空間時(shí)嘱蛋,必須指定該數(shù)組能夠存儲(chǔ)的元素個(gè)數(shù)蚯姆,從而確定數(shù)組大小。創(chuàng) 建數(shù)組之后就不能再修改它的大小洒敏×淞担可以使用 arrayRefVar.length 得到數(shù)組的大小

數(shù)組中的每個(gè)元素都可以使用下面的語法表示,稱為下標(biāo)變量(indexed variable)

arrayRefVar[index];

(數(shù)組引用變量[下標(biāo)];)

循環(huán)遍歷數(shù)組:

計(jì)數(shù)for循環(huán):

for ( int i = 0;i < arrayRefVar.length ; i++){

System.out.println(arrayRefVar[i]);

}

增強(qiáng)for each循環(huán)

for ( int element:arrayRefVar){

System.out.println(element);

(4)數(shù)組拷貝

淺拷貝

一個(gè)數(shù)組變量拷貝給另一個(gè)數(shù)組變凶伙,這時(shí)郭毕,兩個(gè)變量將引用同一個(gè)數(shù)組

elementType[] new_array = arrays ;

該語句并不能將arraysl引用的數(shù)組內(nèi)容復(fù)制給new_array, 而只是將arraysl的引用值復(fù)制給了new_array。在這條語句之后函荣,arrays和new_array 都指向同一個(gè)數(shù)組显押,實(shí)際上是將一個(gè)數(shù)組的引用復(fù)制給另一個(gè)變量扳肛,使兩個(gè)變量都指向相同的內(nèi)存地址。

深拷貝

一個(gè)數(shù)組的所有值拷貝到另個(gè)新的數(shù)組中去乘碑,

復(fù)制數(shù)組的方法:

循環(huán)賦值

使用 Arrays 類的 copyOf 方法

elementType[] new_array = Arrays. copyOf(arrays, arrays.length);

這個(gè)方法通常用來增加數(shù)組的大型谙ⅰ:如果數(shù)組元素是數(shù)值型 ,那么多余的元素將被賦值為0; 如果數(shù)組元素是布爾型 蝉仇,則將賦值false相反旋讹,如果長度小于原始數(shù)組的長度,則只拷貝最前面的數(shù)據(jù)元素轿衔。

使用 System 類中的靜態(tài)方法 arraycopy

arraycopy(sourceArray, srcPos, targetArray, tarPos, length);

參數(shù) srcPos 和 tarPos 分別表示在源數(shù)組 sourceArray 和目標(biāo)數(shù)組 targetArray 中的起始位置

arraycopy 方法沒有給目標(biāo)數(shù)組分配內(nèi)存空間沉迹。復(fù)制前必須創(chuàng)建目標(biāo)數(shù)組以及分配給它的內(nèi)存空間。

(5)命令行參數(shù)

每個(gè)Java應(yīng)用程序的main方法帶有的String[] 參數(shù)是一個(gè)字符串?dāng)?shù)組害驹。

向 main 方法傳遞字符串

java TestMain arg0 arg1 arg2

運(yùn)行程序時(shí)鞭呕,可以從命令行給 main 方法傳遞字符串參數(shù):其中,參數(shù) arg0宛官、arg1 和 arg2 都是字符串葫松,但是在命令行中出現(xiàn)時(shí),不需要放在雙引號中底洗。這些字符串用空格分隔腋么。如果字符串包含空格,那就必須使用雙引號括住亥揖。

使用命令行參數(shù)

當(dāng)調(diào)用 main 方法時(shí)珊擂,Java 解釋器會(huì)創(chuàng)建一個(gè)數(shù)組存儲(chǔ)命令行參數(shù),然后將該數(shù)組的引用傳遞給 args费变。使用args[index]調(diào)用命令行參數(shù)摧扇。

如果運(yùn)行程序時(shí)沒有傳遞字符串,那么使用 new String[0]創(chuàng)建數(shù)組挚歧。在這種情況下扛稽,該數(shù)組是長度為 0的空數(shù)組。args 是對這個(gè)空數(shù)組的引用滑负。因此在张,args 不是 null,但是 args.length 是 0。

Java 應(yīng)用程序的 main 方法中矮慕,程序名并沒有存儲(chǔ)在 args 數(shù)組中

二帮匾、多維數(shù)組

(1)聲明多維數(shù)組變量

數(shù)據(jù)類型[]...[] 數(shù)組名;

數(shù)據(jù)類型 數(shù)組名[]...[];// 允許這種方式 ,但并不推薦使用它

(2)多維數(shù)組初始化

為數(shù)組變量分配內(nèi)存空間

方法一:(推薦)

elementType[]...[] arrayRefVar = new elementType[arraySize0]...[arraySizen];

(元素類型[]...[] 數(shù)組引用變量 =new 元素類型[數(shù)組大小]...[數(shù)組大小];)

int[][] matrix;

方法二:(不推薦)

elementType arrayRefVar[]...[] = new elementType[arraySize0]...[arraySizen];

(元素類型數(shù)組引用變量 =new 元素類型[數(shù)組大小]...[數(shù)組大小];)

int matrix[][];

為數(shù)組變量賦初值

elementType[]...[] arrayRefVar = {{value},...,{value}};


每一維的長度可以不同凡傅,這類數(shù)組叫做鋸齒形數(shù)組

(3)訪問多維數(shù)組元素

數(shù)組元素可以通過下標(biāo)訪問。

arrayRefVar[index0]...[index1];

(數(shù)組引用變量[下標(biāo)0]...[下標(biāo)1];)

循環(huán)遍歷多維數(shù)組

計(jì)數(shù)循環(huán)嵌套

for-each循環(huán)嵌套(以二維數(shù)組為例)

(4)多維數(shù)組是數(shù)組的數(shù)組

Java 實(shí)際上沒有多維數(shù)組肠缔,只有一維數(shù)組夏跷,多維數(shù)組可以看作"數(shù)組的數(shù)組”哼转。

每一個(gè)n維數(shù)組,可以看作n-1維數(shù)組的數(shù)組槽华,其中每個(gè)元素可以看作n-1維數(shù)組的引用:

因此可以逐行申請多維數(shù)組:

使用語法 new int[5][]創(chuàng)建數(shù)組時(shí)壹蔓,必須指定第一個(gè)下標(biāo)。

好啦猫态,今天的文章就到這里佣蓉,希望能幫助到屏幕前迷茫的你們!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末亲雪,一起剝皮案震驚了整個(gè)濱河市勇凭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌义辕,老刑警劉巖虾标,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異灌砖,居然都是意外死亡璧函,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門基显,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蘸吓,“玉大人,你說我怎么就攤上這事撩幽】饧蹋” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵摸航,是天一觀的道長制跟。 經(jīng)常有香客問我,道長酱虎,這世上最難降的妖魔是什么雨膨? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮读串,結(jié)果婚禮上聊记,老公的妹妹穿的比我還像新娘。我一直安慰自己恢暖,他們只是感情好排监,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著杰捂,像睡著了一般舆床。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挨队,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機(jī)與錄音湿弦,去河邊找鬼。 笑死腾夯,一個(gè)胖子當(dāng)著我的面吹牛颊埃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播班利,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼跷乐,長吁一口氣:“原來是場噩夢啊……” “哼肥败!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起愕提,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤馒稍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后纽谒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體如输,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年澳化,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了稳吮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缎谷。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡列林,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出希痴,到底是詐尸還是另有隱情春感,我是刑警寧澤虏缸,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布嫩实,位于F島的核電站,受9級特大地震影響舶赔,放射性物質(zhì)發(fā)生泄漏谦秧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一锥累、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧集歇,春花似錦、人聲如沸诲宇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纺荧。三九已至,卻和暖如春宙暇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背桃熄。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工靶剑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人桩引。 一個(gè)月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓坑匠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子夹纫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容