一、數組的動態初始化
1、聲明
數據類型[] 數組名;或
數據類型 數組名[];
2、開辟空間
數組名 = new 數據類型[長度];//長度必不可少
3、手動賦值
數組名[下標] = 值;
4、使用(打印、運算、判斷等)
System.out.println(數組名[下標]);
【注意事項】
① 數組的元素如果不賦值,也有默認值
int 0
double 0.0
char \u0000
boolean false
引用類型 null
② 訪問數組的元素時,下標必須在0——長度-1 的范圍內,否則報數組下標越界的異常
③ 數組的長度,可以通過 數組名.length表示,提高代碼的維護性
④ 數組的賦值和使用,往往可以通過搭配for循環一起操作
for(int i=0;i<數組名.length;i++){
//每一個元素表示為:數組名[i]
}
二、數組的靜態初始化
步驟1:聲明並初始化
語法:數據類型[] 數組名 = new 數據類型[]{值,值,值};
或 數據類型[] 數組名 = {值,值,值};
int[] arr = {3,4,5,6,100};
//int[] arr2 = new int[] {3,4,5,6,100};
步驟2:使用
for(int i=0;i<數組名.length;i++){
//每一個元素表示為:數組名[i]
}
三、數組的復雜使用
- 數組的賦值
int[] arr1={1,2,3}; int[] arr2=arr1; // 引用型賦值,賦的是地址
特點:
數組屬於引用類型,數組型數據是對象,數組中的每個元素相當於該對象的成員變量。
基本類型的賦值,賦的是值(內容),其中一個變量對其更改不影響另外一個
引用類型的賦值,賦的是地址,兩個引用共同指向一個地址(對象),所以其中一個引用對其更改影響另外一個
注意:如果希望引用類型賦值時,只賦內容,則可以使用循環賦值的方式,語法:
int[] array2 = new int[array1.length]; for(int i=0;i<array2.length;i++){ array2[i] = array1[i]; }
- 數組的反轉
方式一:
for(int i=0;i<arr.length/2;i++){ //交換兩個數 i vs arr.length-1-i int temp = arr[i]; arr[i] = arr[arr.length-1-i]; arr[arr.length-1-i] = temp; }
方式二:
//①創建一個新數組,長度=arr.length int[] newArr = new int[arr.length]; //②逆序賦值 /* i 0 arr.length-1 1 arr.length-2 */ for(int i=0,j=arr.length-1;i<arr.length;i++,j--){ newArr[j]=arr[i]; } //③將新數組的地址賦值給arr arr=newArr;
四、數組的高級使用
- 數組的添加
//----------------具體的添加業務---------- //①新建一個數組,長度=arr.length+1 int[] newArr = new int[arr.length+1]; //②依次為新數組的元素賦值 for(int i=0;i<arr.length;i++){ newArr[i] = arr[i]; } //③將add賦值到新數組的空位上 newArr[newArr.length-1] = add; //④將newArr的地址賦值給arr arr = newArr; System.out.println("添加成功!");
- 數組的插入
//----------------------具體的插入業務----------- //①創建新數組,長度=arr.length+1 int[] newArr = new int[arr.length+1]; //②循環賦值 for(int i=0;i<arr.length;i++){ newArr[i] = arr[i]; } //③循環后移 for(int i=newArr.length-1;i>index;i--){ newArr[i]=newArr[i-1]; } //④將新元素賦值到index位置上 newArr[index] = add; //⑤將newArr的地址賦值給arr arr = newArr; System.out.println("插入成功!");
五、二維數組
二維數組其實就是 一維數組的組合,也就是一維數組的定義類型又為一維數組
方式一:動態初始化
1.聲明
數據類型[][] 數組名;或
數據類型 數組名[][];
數據類型[] 數組名[];
int[][] num; int[] num[]; int num[][];
2.開辟空間
情況1:固定列數
數組名 = new 數據類型[行數][列數];
情況2:不固定列數
數組名 = new 數類型[行數][];
3.賦值
情況1:固定列數
for(int i=0;i<nums.length;i++){//i:行數 for(int j=0;j<nums[i].length;j++){//j:列數 nums[i][j]=值; } }
情況2:不固定列數
for(int i=0;i<nums.length;i++){//i:行數 nums[i]=new 數據類型[長度]; for(int j=0;j<nums[i].length;j++){//j:列數 nums[i][j]=值; } }
4.使用(打印、求和、最值)
for(int i=0;i<nums.length;i++){//i:行數 for(int j=0;j<nums[i].length;j++){//j:列數 System.out.print(nums[i][j]); } }
方式二:靜態初始化
1.聲明並初始化
數據類型[][] 數組名={{},{},{}};
或
數據類型[][] 數組名=new 數據類型[][]{{},{},{}};
2.使用(打印、求和、最值)
for(int i=0;i<nums.length;i++){//i:行數 for(int j=0;j<nums[i].length;j++){//j:列數 System.out.print(nums[i][j]); } }