java數(shù)組
-
數(shù)組的定義:
-
數(shù)組是相同類型數(shù)據(jù)的有序集合。
-
數(shù)組描述的是相同類型的若干個(gè)元素,按照一定的先后順序排序組合而成。
-
其中,每個(gè)數(shù)據(jù)稱為一個(gè)數(shù)組元素,每個(gè)數(shù)組元素可以通過(guò)一個(gè)下標(biāo)來(lái)訪問(wèn)他們。
-
-
數(shù)組的四個(gè)基本特點(diǎn):
-
長(zhǎng)度是確定的。數(shù)組一旦被創(chuàng)建,它的大小就不可以改變。
-
元素類型必須相同,不能出現(xiàn)混合類型。
-
數(shù)組中的元素可以是任意類型。
-
數(shù)組變量屬引用類型,數(shù)組也可以看成是對(duì)象,數(shù)組中的每個(gè)元素相當(dāng)于該對(duì)象的成員變量。
數(shù)組對(duì)象本身是在堆中的。
-
二.數(shù)組的聲明和創(chuàng)建
1.聲明
//變量類型[] 變量名;
//變量類型 變量名[];
int[] num;
int num[];//不推薦
2. 創(chuàng)建
java通過(guò)使用new操作符來(lái)創(chuàng)建數(shù)組,語(yǔ)法如下:
//變量類型[] 變量名 = new 變量名[數(shù)值長(zhǎng)度];//這是動(dòng)態(tài)初始化
int[] num = new int[數(shù)組的長(zhǎng)度];
//變量類型[] 變量名 = new 變量名[]{值1,};//這是靜態(tài)初始化
int[] num = new int[]{值1,值2,...};
靜態(tài)初始化可簡(jiǎn)寫為:
int[] num = {值1,值2,...};
注意:數(shù)值元素索引從0號(hào)開(kāi)始。
三. 數(shù)組使用
獲取數(shù)組長(zhǎng)度:數(shù)組名.length
int a = num.length;
給數(shù)組添加值:
數(shù)組名[數(shù)值索引] = 值;
例:
num[0] = 5;
如果調(diào)用了不存在的數(shù)組的索引,則會(huì)報(bào)錯(cuò):
java.lang.ArrayIndexOutOfBoundsException,數(shù)組下標(biāo)越界異常。
數(shù)組使用:
-
For-Each循環(huán)
int[] a = {1,2,3};
for (int i : a) {
System.out.println(a[i-1]);
} -
數(shù)值作方法入?yún)?/span>
public class demo01 {
public static void main(String[] args) {
//1.定義一個(gè)數(shù)組
int[] a = {1,2,3};
//4.實(shí)際傳參
printArray(a);
}
//2.定義一個(gè)方法,設(shè)置數(shù)組為形式參數(shù)
public static void printArray(int[] arrays){
//3.打印數(shù)組
for (int array : arrays) {
System.out.println(arrays[array-1]);
}
}
}
? -
數(shù)組做返回值
public class demo01 {
public static void main(String[] args) {
//1.定義一個(gè)數(shù)組,作為參數(shù)
int[] a = {1,2,3,4};
//4.定義接收參數(shù)
int[] a2 = reverse(a);
//5.遍歷數(shù)組
for (int i : a2) {
System.out.println(a2[i-1]);
}
}
//2.定義一個(gè)方法,返回參數(shù)為數(shù)組
public static int[] reverse(int[] arrays){
int[] result = new int[]{1,2,3};
//3.返回一個(gè)固定的數(shù)組(根據(jù)使用不同,方法可改變)
return result;
}
}
?
四. 多維數(shù)組
定義:多維數(shù)組可以看成是數(shù)組的數(shù)組,比如二維數(shù)組就是一個(gè)特殊的一維數(shù)組,其每一個(gè)元素都是一個(gè)一維數(shù)組。
二維數(shù)組:
int a[][] = new int[2][5];
?
int[][] a = {{1,2},{3,3},{4,3}};
以上數(shù)組可以看成一個(gè)二行五列的數(shù)組。
五.Arrays類
-
數(shù)組的工具類java.util.Arrays
-
由于數(shù)組對(duì)象本身并沒(méi)有什么方法可以供我們調(diào)用,但API中提供了一個(gè)工具類Arrays供我們使用,從而可以對(duì)數(shù)據(jù)對(duì)象進(jìn)行一些基本操作。
-
Arrays類中的方法都是static修飾的靜態(tài)方法,在使用的時(shí)候可以直接使用類名進(jìn)行調(diào)用,而不用使用對(duì)象來(lái)調(diào)用。(注意:是“不用”,而不是“不能“)
-
Arrays具有以下常用功能;
-
給數(shù)值填充:通過(guò)fill方法,把所有值變成一樣的。
-
對(duì)數(shù)組排序:通過(guò)sort方法,升序。
-
比較數(shù)組:通過(guò)equals方法比較數(shù)值中元素是否相等。
-
查找數(shù)組元素:通過(guò)binarySearch方法能對(duì)排序好的數(shù)組進(jìn)行二分查找法操作。
int[] a = {1,3,2,6,4};
int[] b ={2,4,3,4};
//1. 給數(shù)值填充:通過(guò)fill方法。
Arrays.fill(a,2);
//2. 對(duì)數(shù)組排序:通過(guò)sort方法,升序。
Arrays.sort(a);
//3. 比較數(shù)組:通過(guò)equals方法比較數(shù)值中元素是否相等。
Arrays.equals(a,b);
//4. 查找數(shù)組元素:通過(guò)binarySearch方法能對(duì)排序好的數(shù)組進(jìn)行二分查找法操作。
Arrays.binarySearch(a,2);
-
-
當(dāng)數(shù)組中大部分元素是0,或者為同一值的數(shù)組時(shí),可以使用稀疏數(shù)組來(lái)保存該數(shù)組。
-
稀疏數(shù)組的處理方式:
-
記錄數(shù)組有幾行幾列,有多少不同值。
-
-
浙公網(wǎng)安備 33010602011771號(hào)