Java數組的使用


一、數組的動態初始化

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]);
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM