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

Java 陣列實戰範例精解:從初始化到進階演算法

     編輯:Java 相關知識

陣列基本操作實戰

陣列長度與元素值皆依邏輯需求設計。以下透過五個經典範例,展示陣列語法與解題思路。

範例 1:循環初始化陣列元素(1-100)

需求:建立長度 100 的 int 陣列,元素依序為 1 到 100。

思路一:遍歷索引

int[] m = new int[100];
for (int i = 0; i < m.length; i++) {
    m[i] = i + 1;  // 索引 0 存 1,以此類推
}

思路二:遍歷數值

int[] m = new int[100];
for (int i = 1; i <= 100; i++) {
    m[i - 1] = i;  // 數值 1 存索引 0
}

兩種寫法皆可,關鍵在發現「索引與數值的對應規律」。

範例 2:輸出費波納契數列前 20 項

需求:輸出 1 1 2 3 5 8 13... 前 20 個數字。

規律:前兩項為 1,後續每項等於前兩項之和。

int[] num = new int[20];
num[0] = 1;
num[1] = 1;
for (int i = 2; i < num.length; i++) {
    num[i] = num[i - 1] + num[i - 2];
}
for (int i = 0; i < num.length; i++) {
    System.out.print(num[i] + " ");
}
System.out.println();

範例 3:歌手打分計算(去最高、最低分取平均)

需求:10 位評委打分,去掉一個最高分、一個最低分,剩餘 8 位平均分為最終得分。

int[] score = {90,78,90,96,67,86,78,92,79,85};
int sum = 0, max = score[0], min = score[0];

// 單迴圈同時求和、最大值、最小值(優化效能)
for (int i = 0; i < score.length; i++) {
    sum += score[i];
    if (max < score[i]) max = score[i];
    if (min > score[i]) min = score[i];
}
double avg = (sum - max - min) / 8.0;
System.out.println(avg);

優化重點:將三個迴圈合併為一,減少遍歷次數,提升執行效率。

範例 4:判斷陣列元素是否重複

需求:檢查陣列中是否存在相同元素。

思路:雙層迴圈兩兩比較,外層索引 i,內層索引 j = i+1,避免重複比較與自我比較。

int[] n = {1,2,3,1,0};
boolean flag = true;  // 假設不重複
for (int i = 0; i < n.length - 1; i++) {
    for (int j = i + 1; j < n.length; j++) {
        if (n[i] == n[j]) {
            flag = false;
            break;
        }
    }
    if (!flag) break;
}
System.out.println(flag ? "不重複" : "重複");

範例 5:判斷陣列是否對稱

需求:如 {1}、{1,2,0,2,1}、{1,2,3,3,2,1} 皆為對稱陣列。

思路:只需比較前半段與對應的後半段元素(索引 i 對應 length-i-1)。

int[] n = {1,2,0,2,1};
boolean flag = true;
for (int i = 0; i < n.length / 2; i++) {
    if (n[i] != n[n.length - i - 1]) {
        flag = false;
        break;
    }
}
System.out.println(flag ? "對稱" : "不對稱");

陣列操作的核心在於「發現規律、建立索引對應關係」,多練習此類邏輯能顯著提升程式設計思維。

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