Java數組(Array)最全匯總(下篇)

前言

本章是關於Java數組的最全匯總,本篇為匯總下篇,主要對上兩篇內容進行總結匯總。

數組是最常見的一種數據結構,它是相同類型的用一個標識符封裝到一起的基本類型數據序列或者對象序列。

數組使用一個統一的數組名和不同的下標來唯一確定數組中的元素。

實質上,數組是一個簡單的線性序列,因此訪問速度很快。

本章將詳細介紹 Java 中數組的創建、初始化和處理方法,如獲取數組長度、查找數組元素和數組排序等。

本章學習要點

  1. 掌握一維數組的創建方法
  2. 掌握一維數組的初始化方法
  3. 熟練掌握一維數組的應用
  4. 掌握二維數組的創建
  5. 掌握二維數組的初始化
  6. 熟練掌握二維數組元素的訪問方式
  7. 掌握數組的復制方法
  8. 掌握搜索數組元素的方法
  9. 掌握對數組的排序算法

對Java數組的總結

數組(Array)是有序數據的集合,數組中的每個元素具有相同的數據類型,可以用一個統一的數組名和不同的下標來唯一確定數組中的元素。

根據數組的維度,可以將其分為一維數組、二維數組和多維數組等。

一維數組

數組中每個元素都隻帶有一個下標,是數組中最簡單的一種數組。

聲明

聲明一維數組語法有兩種格式(推薦使用第一種)。

type[] arrayName; // 數據類型[] 數組名;

或者

type arrayName[]; // 數據類型 數組名[];

分配空間

分配空間語法格式如下。

arrayName = new type[size]; // 數組名 = new 數據類型[數組長度];

初始化

Java 中初始化數組有以下 3 種方式。

  • 使用 new 指定數組大小後進行初始化
  • 使用 new 指定數組元素的值
  • 直接指定數組元素的值
// 使用 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");
}

二維數組

二維數組被看作數組的數組。

聲明

聲明二維數組語法有兩種格式(推薦使用第一種)。

type[][] arrayName; // 數據類型[][] 數組名;

或者

type arrayName[][]; // 數據類型 數組名[][];

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

初始化

二維數組可以通過以下 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][];

 使用

  • 獲取單個元素:arrayName[i-1][j-1];

arrayName 表示數組名稱,i 表示數組的行數,j 表示數組的列數。

  • 獲取全部元素:使用嵌套 for 循環或 for each 循環語句。
  • 獲取整行元素:需要將行數固定,然後隻遍歷該行中的全部列即可。
  • 獲取整列元素:獲取指定列的元素與獲取指定行的元素相似,保持列不變,遍歷每一行的該列即可。

數組操作

 比較數組

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

Arrays.equals(arrayA, arrayB);

arrayA 是用於比較的第一個數組,arrayB 是用於比較的第二個數組。

填充數組

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

Arrays.fill(array,value);

array 表示數組,value 表示填充的值。隻能使用同一個數值進行填充。

 數組查找

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

binarySearch(Object[] a,Object key);

a 表示要搜索的數組,key 表示要搜索的值。

在數組中指定范圍內查找,語法格式如下。

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

a 表示要進行查找的數組,fromIndex 指定范圍的開始處索引(包含開始處),toIndex 指定范圍的結束處索引(不包含結束處),key 表示要搜索的元素。

復制數組

copyOf()

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

srcArray 表示要進行復制的數組,length 表示復制後的新數組的長度

CopyOfRange()

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

srcArray 表示原數組,startIndex 表示開始復制的起始索引,endIndex 表示終止索引。

 arraycopy()

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

srcArray 表示原數組,srcIndex 表示源數組中的起始索引,destArray 表示目標數組,destIndex 表示目標數組中的起始索引,length 表示要復制的數組長度。

 clone()

array_name.clone()

數組排序

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

  1. Arrays.sort()
  2. 冒泡排序
  3. 快速排序
  4. 選擇排序
  5. 直接插入

常見問題解答

1. 聲明數組需要註意什麼?

聲明數組時,一定要考慮數組的最大容量,防止容量不夠的現象。

數組一旦被聲明,它的容量就固定瞭,不容改變。

如果想在運行程序時改變容量,就需要用到集合。

2. 數組在平時的程序代碼中使用是否頻繁?

數組有一個缺點,就是一旦聲明,就不能改變容量,這個也是其使用頻率不高的原因。一般存儲數據會使用集合或 Vector 來存儲數據。

到此這篇關於Java數組(Array)最全匯總(下篇)的文章就介紹到這瞭,其他兩個部分的內容(上、中篇)請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: