1. 程式人生 > 其它 >獲取陣列索引_對Java陣列的總結

獲取陣列索引_對Java陣列的總結

技術標籤:獲取陣列索引

陣列(Array)是有序資料的集合,陣列中的每個元素具有相同的資料型別,可以用一個統一的陣列名和不同的下標來唯一確定陣列中的元素。根據陣列的維度,可以將其分為一維陣列、二維陣列和多維陣列等。

一維陣列

陣列中每個元素都只帶有一個下標,是陣列中最簡單的一種陣列。

1. 宣告

宣告一維陣列語法有兩種格式(推薦使用第一種)。

type[] arrayName; // 資料型別[] 陣列名;

或者

type arrayName[]; // 資料型別 陣列名[];

2. 分配空間

分配空間語法格式如下。

arrayName = new type[size]; // 陣列名 = new 資料型別[陣列長度];

3. 初始化

Java中初始化陣列有以下 3 種方式。

  • 使用 new 指定陣列大小後進行初始化

  • 使用 new 指定陣列元素的值

  • 直接指定陣列元素的值4. 使用

  • // 使用 new 指定陣列大小後進行初始化int[] number = new int[5];number[0] = 1;number[1] = 2;number[2] = 3;number[3] = 5;number[4] = 8;// 使用 new 指定陣列元素的值(2種方式)int[] number = new int[] { 1, 2, 3, 5, 8 };int[] number = new int[5] { 1, 2, 3, 5, 8 };// 直接指定陣列元素的值(2種方式)int[] number = { 1, 2, 3, 5, 8 };int[] number;number={1,2,3,5,8};
  • 獲取單個元素

  • 獲取全部元素二維陣列

  • // 獲取單個元素int[] number = { 1, 2, 3, 5, 8 };System.out.println("獲取第一個元素:" + number[0]);// 使用for語句獲取全部元素int[] number = { 1, 2, 3, 5, 8 };for (int i = 0; i < number.length; i++) {    System.out.println("第" + (i + 1) + "個元素的值是:" + number[i]);}// 使用foreach語句獲取全部元素for (int val : number) {    System.out.print("元素的值依次是:" + val + "\t");}

二維陣列被看作陣列的陣列。

1. 宣告

宣告二維陣列語法有兩種格式(推薦使用第一種)。

type[][] arrayName; // 資料型別[][] 陣列名;

或者

type arrayName[][]; // 資料型別 陣列名[][];

第一個中括號表示行,第二個中括號表示列。

2. 初始化

二維陣列可以通過以下 3 種方式來指定元素的初始值。

type[][] arrayName = new type[][]{值 1,值 2,值 3,…,值 n}; // 在定義時初始化
type[][] arrayName = new type[size1][size2]; // 給定空間,在賦值
type[][] arrayName = new type[size][]; // 陣列第二維長度為空,可變化

// 定義時初始化

int[][] temp = new int[][]{{1,2},{3,4}};

// 給定空間在賦值

int[][] temp = new int[2][2];

// 陣列第二維長度為空,可變化

int[][] temp = new int[2][];

3. 使用

  • 獲取單個元素:arrayName[i-1][j-1];arrayName 表示陣列名稱,i 表示陣列的行數,j 表示陣列的列數。

  • 獲取全部元素:使用巢狀 for 迴圈或 for each 迴圈語句。

  • 獲取整行元素:需要將行數固定,然後只遍歷該行中的全部列即可。

  • 獲取整列元素:獲取指定列的元素與獲取指定行的元素相似,保持列不變,遍歷每一行的該列即可。

陣列操作

1. 比較陣列

比較陣列元素的個數和對應位置的元素是否相等。

Arrays.equals(arrayA, arrayB);

arrayA 是用於比較的第一個陣列,arrayB 是用於比較的第二個陣列。

2. 填充陣列

在指定位置進行數值填充。

Arrays.fill(array,value);

array 表示陣列,value 表示填充的值。只能使用同一個數值進行填充。

3. 陣列查詢

從陣列中查詢指定位置的元素,或者查詢某元素在指定陣列中的位置,語法格式如下。

binarySearch(Object[] a,Object key);

a 表示要搜尋的陣列,key 表示要搜尋的值。在陣列中指定範圍內查詢,語法格式如下。

binarySearch(Object[] a,int fromIndex,int toIndex,Object key);

a 表示要進行查詢的陣列,fromIndex 指定範圍的開始處索引(包含開始處),toIndex 指定範圍的結束處索引(不包含結束處),key 表示要搜尋的元素。

4. 複製陣列

1) copyOf()

Arrays.copyOf(dataType[] srcArray,int length);

srcArray 表示要進行復制的陣列,length 表示複製後的新陣列的長度

2) CopyOfRange()

Arrays.copyOfRange(dataType[] srcArray,int startIndex,int endIndex)

srcArray 表示原陣列,startIndex 表示開始複製的起始索引,endIndex 表示終止索引。

3) arraycopy()

System.arraycopy(dataType[] srcArray,int srcIndex,int destArray,int destIndex,int length)

srcArray 表示原陣列,srcIndex 表示源陣列中的起始索引,destArray 表示目標陣列,destIndex 表示目標陣列中的起始索引,length 表示要複製的陣列長度。

4) clone()

array_name.clone()

陣列排序

Java 陣列中有 5 種常見排序方法,分別是:

  1. Arrays.sort()

  2. 氣泡排序

  3. 快速排序

  4. 選擇排序

  5. 直接插入

常見問題解答

1. 宣告陣列需要注意什麼?

宣告陣列時,一定要考慮陣列的最大容量,防止容量不夠的現象。陣列一旦被宣告,它的容量就固定了,不容改變。如果想在執行程式時改變容量,就需要用到集合。關於集合我們會在教程後面講解。

2. 陣列在平時的程式程式碼中使用是否頻繁?

陣列有一個缺點,就是一旦宣告,就不能改變容量,這個也是其使用頻率不高的原因。一般儲存資料會使用集合或 Vector 來儲存資料,後面我們會講到。

應用例項

本章還有多種陣列的示例程式,大家可以直接點選下面連結進行閱讀練習(前 3 個為一維陣列應用,後 3 個為一維陣列和二維陣列結合應用):

  • Java求最大和最小值

  • Java統計商品資訊

  • Java數字轉人民幣讀法

  • Java商品資訊查詢

  • Java五子棋遊戲

  • Java輸出楊輝三角形

0934e958953ab94dd7024a04fbf49399.png