數(shù)組
一維數(shù)組
- 定義:在Java中,數(shù)組是用來(lái)存儲(chǔ)一組相同類(lèi)型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)而克。
- 特點(diǎn):當(dāng)數(shù)組初始化完畢后铆铆,Java為數(shù)組在內(nèi)存中分配一段連續(xù)的空間建车,其在內(nèi)存中開(kāi)辟的空間也將隨之固定,此時(shí)數(shù)組的長(zhǎng)度就不能再發(fā)生改變裳凸。即使數(shù)組中沒(méi)有保存任何數(shù)據(jù)贱鄙,數(shù)組所占據(jù)的空間依然存在。
- 聲明數(shù)組的兩種方式
int[] arr1;// 推薦使用
int arr2[];
- 定義數(shù)組時(shí)一定要指定數(shù)組名和數(shù)組類(lèi)型
- 必須書(shū)寫(xiě)“[]”姨谷,表示定義了一個(gè)數(shù)組逗宁,而不是一個(gè)普通變量。
- “[數(shù)組長(zhǎng)度]”決定連續(xù)分配的空間個(gè)數(shù)梦湘,通過(guò)數(shù)組length屬性可獲取次長(zhǎng)度瞎颗。
- 數(shù)組的數(shù)據(jù)類(lèi)型用于確定分配的每個(gè)空間的大小。
- 實(shí)例化數(shù)組對(duì)象:
這個(gè)數(shù)組中可以包含5個(gè)int類(lèi)型的數(shù)據(jù)元素
每個(gè)元素的初始值是0
當(dāng)數(shù)組被實(shí)例化以后捌议,每個(gè)元素都會(huì)被賦一個(gè)初始值
-
整數(shù)類(lèi)型:0
浮點(diǎn)類(lèi)型:0.0
boolean:false
char:'\u0000'
引用類(lèi)型:null
- 實(shí)例化數(shù)組對(duì)象:
arr1 = new int[5];
System.out.println(Arrays.toString(arr1));
String[] strArr = new String[5];
System.out.println(Arrays.toString(strArr));
- 數(shù)組的length屬性
- 通過(guò)數(shù)組對(duì)象的length屬性哼拔,可以訪(fǎng)問(wèn)數(shù)組的長(zhǎng)度(容量)
System.out.println("arr1.length = " + arr1.length);
- length屬性是只讀的,不能被再次賦值
arr1.length = 10;
- 通過(guò)數(shù)組元素的索引可以訪(fǎng)問(wèn)某個(gè)數(shù)組中的元素
- 合法的索引范圍是從0~length-1
- 把第4個(gè)元素的值修改為100
arr1[3] = 100;
- 把倒數(shù)第1個(gè)元素的值修改為-1024
arr1[arr1.length - 1] = -1024;
- 獲取第4個(gè)元素
System.out.println(arr1[3]);
- 獲取倒數(shù)第1個(gè)元素
System.out.println(arr1[arr1.length - 1]);
- 如果在訪(fǎng)問(wèn)數(shù)據(jù)元素時(shí)使用了合法范圍外的索引值,則會(huì)得到java.lang.ArrayIndexOutOfBoundsException其消息會(huì)描述為Index n out of bounds for length m
- 數(shù)組可在聲明的同時(shí)進(jìn)行實(shí)例化操作
boolean[] boolArr = new boolean[10];
System.out.println(Arrays.toString(boolArr));
- 第3個(gè)和倒數(shù)第三個(gè)元素設(shè)置為true
boolArr[2] = true;
boolArr[boolArr.length - 3] = true;
System.out.println(Arrays.toString(boolArr));
- 0長(zhǎng)度數(shù)組,通常用于防止返回null
int[] arr3 = new int[0];
- 實(shí)例化數(shù)組的同時(shí)瓣颅,可以為其各個(gè)元素進(jìn)行賦值
int[] arr4 = new int[] { 1, 2, 3, 4, 5 };
System.out.println(Arrays.toString(arr4));
- 可以使用new int[]{5,4,3....,-5}進(jìn)行方法實(shí)際參數(shù)的傳遞
int[] arr5 = { 5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5 };
二維數(shù)組
- 定義: 二維數(shù)組:即數(shù)組的數(shù)組倦逐,規(guī)則的二維數(shù)據(jù)是一張表格(Java中定義和操作多維數(shù)組的語(yǔ)法與一維數(shù)組類(lèi)似。在實(shí)際應(yīng)用中宫补,三維及以上的數(shù)組很少使用檬姥,主要使用二維數(shù)組。)
- 數(shù)組類(lèi)型 數(shù)組名 [][]
- 數(shù)據(jù)類(lèi)型為數(shù)組元素的類(lèi)型
- “[][]”用于表明定義了一個(gè)二維數(shù)組粉怕,通過(guò)多個(gè)下標(biāo)進(jìn)行數(shù)據(jù)訪(fǎng)問(wèn)健民。
- 聲明一個(gè)int類(lèi)型的二維數(shù),arr1數(shù)組中的元素是4個(gè)int類(lèi)型的一維數(shù)組斋荞。每一個(gè)一維數(shù)組中又包含了3個(gè)int類(lèi)型的元素
{0,0,0},
{0,0,0},
{0,0,0},
{0,0,0}
- 二維數(shù)組也可以在聲明時(shí)進(jìn)行元素的初始化,以語(yǔ)句聲明并初始化一個(gè)二維數(shù)組(char[4][4])
char[][] arr2 = {
{'a','b','c','d'},
{'e','f','g','h'},
{'i','j','k','l'},
{'m','n','o','p'}
};
- 在二維數(shù)組聲明時(shí)直接初始化荞雏,也可以生成不規(guī)則的二維數(shù)組,在實(shí)際開(kāi)發(fā)中很少使用
char[][] arr3 = {
{'a','b'},
{'c','d','e','f','g','h','i','j'},
{'k','l','m','n'},
{'o','p'}
};