首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 數組完整指南:聲明、初始化、傳遞、排序與查找

     編輯:Java 相關知識

數組是固定大小、同類型元素的線性容器,下標從 0 開始。Java 數組是對象,擁有 length 屬性獲取長度。

1. 聲明與分配

int[] arr;           // 聲明引用
arr = new int[12];   // 分配空間,默認初始化為 0
int[] arr2 = new int[12]; // 合寫

// 多數組同時聲明
String[] a = new String[100], b = new String[27];

2. 初始化示例

final int SIZE = 10;
int[] n = new int[SIZE];
for (int i = 0; i < n.length; i++) {
    n[i] = 2 + 2 * i; // 2,4,6...20
}
// 輸出
for (int i = 0; i < n.length; i++) {
    System.out.println(i + "\t" + n[i]);
}

3. 數組作為方法參數:引用傳遞 vs 值傳遞

整個數組傳遞:傳遞引用副本,方法內修改元素影響原數組(引用傳遞效果)。

單個元素傳遞:傳遞基本類型值的副本,方法內修改不影響原數組(值傳遞)。

public void modifyArray(int[] b) {
    for (int j = 0; j < b.length; j++) b[j] *= 2; // 影響原數組
}
public void modifyElement(int e) {
    e *= 2; // 不影響原數組
}

4. 多維數組

int[][] matrix = new int[3][4]; // 3行4列
int[][] jagged = new int[3][];  // 鋸齒數組
jagged[0] = new int[2];
jagged[1] = new int[5];

5. 排序

  • Arrays.sort(arr):雙軸快排(基本類型)/ 歸併排序(對象),O(n log n)。
  • 自定義比較:Arrays.sort(arr, Comparator)。

6. 查找

例:10 億有序數據,線性需 5 億次比較,二分僅 30 次。

7. 常用工具類 java.util.Arrays

  • toString(arr):調試輸出
  • copyOf(arr, newLen) / copyOfRange():擴容/截取
  • fill(arr, val):批量賦值
  • equals(arr1, arr2):內容比較

現代開發多用 ArrayList(動態擴容)、Stream API 處理集合,但理解數組底層機制仍是基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
算法前提時間複雜度說明
線性查找無序O(n)逐個比對,小數據量可用
二分查找有序O(log n)Arrays.binarySearch(),大數據量首選