Java數組(int為例)
定義:相同數據類型的數據的組合,是一種引用類型,是一個對象,存在堆里。
數組初始化:int[] scores1 = new int[]{72,90,59};//靜態初始化:在聲明並初始化數組與給數組相應的元素賦值操作同時進行。
int scores2[] = new int[3];
scores2[0] = 72;
scores2[1] = 90;
scores2[2] = 59;
//動態初始化:在聲明並初始化數組與給數組相應的元素賦值操作分開進行。
//聲明數組的錯誤寫法:
1)String[] names = new String[5]{"AA","BB","CC"};
2)int i[10];
3)int i = new int[];
注:不管是動態還是靜態初始化數組,一定在創建的時候,就指明了數組的長度!
引用數組元素:通過數組的下角標引用。下角標從0開始,到n-1結束,n是數組的長度。
數組長度:通過.length調用
遍歷數組:
for( int i = 0 ; i < scores.length ; I ++){
System.out.println( scores[i]);
}
數組元素的默認初始值:
byte short int long 初始值為0
float double 初始值為0.0
char 初始值為 空格
boolean 初始值為false
引用類型初始值為null
一維數組的寫法:int[] arrs = new int[5];
arrs[0] = 5;
//int arrs[] = new int[5];
二維數組的寫法:int [][] is = new int[3][];
int[][] is2 = {{1,2},{3,4},{5,6}};
數組常見異常:
- 數組下標越界異常:java.lang.ArrayIndexOutBoundsException
int[] i = new int[10];
i[0] = 0;
i[10] = 10;//超出數組下標值(下標值越界)
for( int j = 0 ; j < i.length ; j++){
System.out.println(i[j]);
}
2.空指針異常: NullPointerException
(1) boolean[] b =new boolean[3];
b = null;
System.out.println(b[0]);
(2) String[] str = new String[4];
str[3] = new String("AA");//str[3] = "AA";
System.out.println(str[3].toString());
(3) int[][] j = new int[3][];
j[2][0] = 12;
Arrays類:
binayeSearch: 二分搜索法,使用二進制搜索算法來搜索指定類型數組,以獲得指定的值。
輸出結果
輸出結果為搜索內容在數組中的位置(從0開始)
輸出結果
負數指的是該數應在該數組中的位置(從1開始)
Equals:用於比較兩個相同類型的值,如果兩個指定類型的值相等則返回true,否則返回false。
Fill:用於填充數組
將int[] arrs2 中的內容替換成3
輸出結果
將int[] arrs2 中的第二位到第三位替換為9
**2指第二位,4指第四位,9為替換的內容
**2,4指從第二到第三位,而不是從第二位到第四位
輸出結果
Sort:對數組中的內容進行排序(從0開始)
public static void sort(int[] a)
copyOf:向數組添加內容
輸出結果
copyOfRange: 截取數組內容
截取第0到第3位內容
輸出結果