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

Java 數組進階:最大值查找、數組拷貝與擴容實戰

     編輯:Java 綜合教學

一、尋找數組最大值經典演算法

int[] arr = {3, 7, 2, 9, 5};
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
    if (arr[i] > max) max = arr[i];
}
System.out.println("最大值:" + max); // 9

核心思想:假設首元素為最大,單次遍歷比較更新,時間複雜度 O(n),空間 O(1)。

二、數組拷貝兩大核心 API

1. System.arraycopy() — 底層高效拷貝

int[] src = {1,2,3,4,5};
int[] dest = new int[3];
System.arraycopy(src, 1, dest, 0, 3); // 從 src[1] 拷貝 3 個到 dest[0]
// dest = {2,3,4}

參數:src, srcPos, dest, destPos, length。原生方法,效能最高。

2. Arrays.copyOf() / copyOfRange() — 靈活擴容截取

int[] arr = {1,2,3};
int[] arr2 = Arrays.copyOf(arr, 5); // 長度擴充至 5,新位置補 0 → {1,2,3,0,0}
int[] arr3 = Arrays.copyOfRange(arr, 1, 3); // 區間複製 [1,3) → {2,3}

特點:自動建立新數組,支援擴容、截取、類型轉換,原始數組不變。

三、數組擴容本質

Java 數組長度不可變,所謂擴容實為「建立更大新數組 + 拷貝舊資料」。ArrayList 內部即封裝此邏輯(預設 1.5 倍擴容)。手動擴容範例:

int[] oldArr = {1,2,3};
int[] newArr = Arrays.copyOf(oldArr, oldArr.length * 2); // 翻倍擴容

四、實戰輸出對照

最大值演示 arraycopy演示 copyOf擴容演示 copyOfRange截取演示

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved