Java課程筆記(十一)數(shù)組

1. 數(shù)組的定義

相同類(lèi)型的數(shù)據(jù)的有序集合

int[ ] nums;

int nuts[ ];

兩種都可以,但是首選第一種

int[ ] nums; // 聲明一個(gè)數(shù)組

nums =new int[10]; // 分配一個(gè)10個(gè) int 類(lèi)型數(shù)字的空間,創(chuàng)建一個(gè)數(shù)組

也可以將聲明和創(chuàng)建數(shù)組簡(jiǎn)化為一行:

int[ ] nums =new int[15];

給數(shù)組元素賦值:

nums [?]=?;

2. 計(jì)算數(shù)組元素和

int sum =0;

for (int i =0; i < nums.length; i++) { ? //?nums.length 獲取數(shù)組長(zhǎng)度

sum = sum + nums[i];

}

System.out.println("總和為:"+ sum);

3. 內(nèi)存分析

內(nèi)存分析:

在聲明時(shí),在棧中壓入數(shù)組名(僅有數(shù)組名字,內(nèi)部為空)

在創(chuàng)建數(shù)組時(shí),在堆中開(kāi)辟了一個(gè)內(nèi)存,空間分成(數(shù)組大小)的份

在賦值時(shí),在堆中給每一份空間賦值

4. 三種初始化

靜態(tài)初始化

// 靜態(tài)初始化,除了用 new 定義,也可以直接定義,可以理解為結(jié)合了 創(chuàng)建 + 賦值 兩個(gè)步驟

int[ ] a = {0,1,2,3,6,9};// 放多少,空間就是多大,一旦定義,空間大小不可改變

動(dòng)態(tài)初始化

// 動(dòng)態(tài)初始化

int[] b =new int[10]; // 創(chuàng)建之后里面的默認(rèn)值為0

數(shù)組的默認(rèn)初始化

數(shù)組是引用類(lèi)型,他的元素相當(dāng)于類(lèi)的實(shí)例變量,因此數(shù)組一經(jīng)分配空間,其中的每個(gè)元素也被按照實(shí)例變量同樣的方式被隱式初始化

5. 數(shù)組的四個(gè)基本特點(diǎn)

1. 長(zhǎng)度確定,一旦被創(chuàng)建,就不可以改變

2. 元素必須是相同類(lèi)型,不能混合類(lèi)型

3. 元素可以是任何數(shù)據(jù)類(lèi)型,包括基本類(lèi)型和引用類(lèi)型

4. 數(shù)組變量屬于引用類(lèi)型,數(shù)組也可以看做是對(duì)象,數(shù)組中的每個(gè)元素相當(dāng)于鈣對(duì)象的成員變量。數(shù)組本身就是對(duì)象,Java 中對(duì)象是堆中的,因此數(shù)組無(wú)論保存原始類(lèi)型還是其他對(duì)象類(lèi)型,數(shù)組對(duì)象本身都是在堆中的。

6. 數(shù)組邊界

下標(biāo)的合法區(qū)間:【0,length-1】越界會(huì)報(bào)錯(cuò):ArrayIndexOutofBounds

7. 數(shù)組的使用

基本用法:

public static void main(String[ ] args) {

int[ ] array = {2,3,4,5,8};

// 打印全部的數(shù)組元素

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

? ? System.out.println(array[i]);

? ? }

? ? System.out.println("===================================");

// 計(jì)算所有元素的和

? ? int sum =0;

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

? ? sum += array[i];

? ? }

? ? System.out.println("sum="+sum);

? ? System.out.println("===================================");

// 查找最大元素

? ? int max = array[0];

? ? for (int i =1; i < array.length; i++) {

? ? if(array[i]>max){

? ? max = array[i];

? ? ? ? }

}

? ? System.out.println("max"+max);

}

高級(jí)用法:

// for each 循環(huán)

int[ ] array = {2,4,7,4,7};

for (int i : array) { // 輸入 ? ??數(shù)組名 . for ? ?然后點(diǎn)回車(chē)

System.out.println(i);// i 表示數(shù)組里面每一個(gè)值

}

特點(diǎn):沒(méi)有輸出,比較適合打印輸出,但是要是操作里面的元素,這種方式可能沒(méi)那么適合

// 數(shù)組做方法入?yún)?/b>

例如:打印數(shù)組元素的方法

public static void printArray(int[ ] arrays){

for (int array : arrays) {

System.out.print(array+" ");

? ? }

}

// 數(shù)組作返回值

例如:反轉(zhuǎn)數(shù)組

public static int[ ] ?reverse(int[] array){

int result[ ] =new int[array.length];

? ? for (int i =0, j = array.length-1; i < array.length; i++,j--) {

? ? result[j] = array[i];

? ? }

return result;

}

注意:返回的是數(shù)組,在 main 里用的時(shí)候要對(duì)其定義。

int[ ] reArray =reverse(array);

8. 多維數(shù)組

定義

int[ ][ ]array = {{1,2},{2,2},{5,6}};

1,2 array[0]

2,2 array[1]

5,6 array[2]

// 打印多維數(shù)組

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

for (int j =0; j< array[i].length; j++) {

System.out.println(array[i][j]);

? ? }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容