
Java 教程
- Java - 首頁
- Java - 概述
- Java - 歷史
- Java - 特性
- Java 與 C++
- JVM - Java 虛擬機器
- Java - JDK 與 JRE 與 JVM
- Java - Hello World 程式
- Java - 環境搭建
- Java - 基本語法
- Java - 變數型別
- Java - 資料型別
- Java - 型別轉換
- Java - Unicode 系統
- Java - 基本運算子
- Java - 註釋
- Java - 使用者輸入
- Java - 日期和時間
Java 控制語句
- Java - 迴圈控制
- Java - 決策制定
- Java - if-else
- Java - switch
- Java - for 迴圈
- Java - foreach 迴圈
- Java - while 迴圈
- Java - do-while 迴圈
- Java - break
- Java - continue
面向物件程式設計
- Java - 面向物件程式設計概念
- Java - 物件和類
- Java - 類屬性
- Java - 類方法
- Java - 方法
- Java - 變數作用域
- Java - 建構函式
- Java - 訪問修飾符
- Java - 繼承
- Java - 聚合
- Java - 多型
- Java - 方法重寫
- Java - 方法過載
- Java - 動態繫結
- Java - 靜態繫結
- Java - 例項初始化塊
- Java - 抽象
- Java - 封裝
- Java - 介面
- Java - 包
- Java - 內部類
- Java - 靜態類
- Java - 匿名類
- Java - 單例類
- Java - 包裝類
- Java - 列舉
- Java - 列舉建構函式
- Java - 列舉字串
Java 內建類
Java 檔案處理
Java 錯誤和異常
- Java - 異常
- Java - try-catch 塊
- Java - try-with-resources
- Java - 多重 catch 塊
- Java - 巢狀 try 塊
- Java - finally 塊
- Java - throw 異常
- Java - 異常傳播
- Java - 內建異常
- Java - 自定義異常
Java 多執行緒
- Java - 多執行緒
- Java - 執行緒生命週期
- Java - 建立執行緒
- Java - 啟動執行緒
- Java - 執行緒連線
- Java - 執行緒命名
- Java - 執行緒排程器
- Java - 執行緒池
- Java - 主執行緒
- Java - 執行緒優先順序
- Java - 守護執行緒
- Java - 執行緒組
- Java - 關閉鉤子
Java 同步
Java 網路程式設計
- Java - 網路程式設計
- Java - Socket 程式設計
- Java - URL 處理
- Java - URL 類
- Java - URLConnection 類
- Java - HttpURLConnection 類
- Java - Socket 類
- Java - 泛型
Java 集合
Java 介面
Java 資料結構
Java 集合演算法
高階 Java
- Java - 命令列引數
- Java - Lambda 表示式
- Java - 傳送郵件
- Java - Applet 基礎
- Java - Javadoc 註釋
- Java - 自動裝箱和拆箱
- Java - 檔案不匹配方法
- Java - REPL (JShell)
- Java - 多版本 Jar 檔案
- Java - 私有介面方法
- Java - 內部類菱形運算子
- Java - 多解析度影像 API
- Java - 集合工廠方法
- Java - 模組系統
- Java - Nashorn JavaScript
- Java - Optional 類
- Java - 方法引用
- Java - 函式式介面
- Java - 預設方法
- Java - Base64 編碼解碼
- Java - switch 表示式
- Java - Teeing 收集器
- Java - 微基準測試
- Java - 文字塊
- Java - 動態 CDS 歸檔
- Java - Z 垃圾收集器 (ZGC)
- Java - 空指標異常
- Java - 打包工具
- Java - 密封類
- Java - 記錄類
- Java - 隱藏類
- Java - 模式匹配
- Java - 簡潔數字格式化
- Java - 垃圾回收
- Java - JIT 編譯器
Java 雜項
- Java - 遞迴
- Java - 正則表示式
- Java - 序列化
- Java - 字串
- Java - Process API 改進
- Java - Stream API 改進
- Java - 增強的 @Deprecated 註解
- Java - CompletableFuture API 改進
- Java - 流
- Java - 日期時間 API
- Java 8 - 新特性
- Java 9 - 新特性
- Java 10 - 新特性
- Java 11 - 新特性
- Java 12 - 新特性
- Java 13 - 新特性
- Java 14 - 新特性
- Java 15 - 新特性
- Java 16 - 新特性
Java API 和框架
Java 類參考
- Java - Scanner
- Java - 陣列
- Java - 字串
- Java - Date
- Java - ArrayList
- Java - Vector
- Java - Stack
- Java - PriorityQueue
- Java - LinkedList
- Java - ArrayDeque
- Java - HashMap
- Java - LinkedHashMap
- Java - WeakHashMap
- Java - EnumMap
- Java - TreeMap
- Java - IdentityHashMap
- Java - HashSet
- Java - EnumSet
- Java - LinkedHashSet
- Java - TreeSet
- Java - BitSet
- Java - Dictionary
- Java - Hashtable
- Java - Properties
- Java - Collection
- Java - Array
Java 有用資源
Java - 陣列
Java 中的陣列是什麼?
Java 提供了一種稱為陣列的資料結構,它儲存固定大小的相同資料型別的元素的順序集合。陣列用於儲存資料集合,但通常更方便地將陣列視為相同型別變數的集合。
無需宣告單個變數,例如 number0、number1、... 和 number99,您可以宣告一個數組變數,例如 numbers,並使用 numbers[0]、numbers[1] 和 ...、numbers[99] 來表示單個變數。
本教程介紹如何宣告陣列變數、建立陣列以及使用索引變數處理陣列。
宣告陣列變數
要在程式中使用陣列,必須宣告一個變數來引用陣列,並且必須指定變數可以引用的陣列型別。以下是宣告陣列變數的語法:
語法
dataType[] arrayRefVar; // preferred way. or dataType arrayRefVar[]; // works but not preferred way.
注意 - 首選樣式為dataType[] arrayRefVar。樣式dataType arrayRefVar[]來自 C/C++ 語言,並在 Java 中被採用以適應 C/C++ 程式設計師。
示例
以下程式碼片段是此語法的示例:
double[] myList; // preferred way. or double myList[]; // works but not preferred way.
建立陣列
您可以使用 new 運算子建立陣列,語法如下:
語法
arrayRefVar = new dataType[arraySize];
上述語句執行兩件事:
它使用 new dataType[arraySize] 建立一個數組。
它將新建立陣列的引用賦給變數 arrayRefVar。
宣告陣列變數、建立陣列並將陣列的引用賦給變數可以組合在一個語句中,如下所示:
dataType[] arrayRefVar = new dataType[arraySize];
或者,您可以按如下方式建立陣列:
dataType[] arrayRefVar = {value0, value1, ..., valuek};
陣列元素透過索引訪問。陣列索引從 0 開始;也就是說,它們從 0 開始到arrayRefVar.length-1。
示例
以下語句宣告一個數組變數 myList,建立一個包含 10 個雙精度型別元素的陣列,並將它的引用賦給 myList:
double[] myList = new double[10];
下圖表示陣列 myList。這裡,myList 包含十個雙精度值,索引從 0 到 9。

處理陣列
處理陣列元素時,我們經常使用for迴圈或foreach迴圈,因為陣列中的所有元素都是相同型別,並且陣列的大小是已知的。
示例:建立、迭代和對陣列執行其他操作
public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // Print all the array elements for (int i = 0; i < myList.length; i++) { System.out.println(myList[i] + " "); } // Summing all elements double total = 0; for (int i = 0; i < myList.length; i++) { total += myList[i]; } System.out.println("Total is " + total); // Finding the largest element double max = myList[0]; for (int i = 1; i < myList.length; i++) { if (myList[i] > max) max = myList[i]; } System.out.println("Max is " + max); } }
這將產生以下結果:
輸出
1.9 2.9 3.4 3.5 Total is 11.7 Max is 3.5
使用陣列的 foreach 迴圈
JDK 1.5 引入了一種新的 for 迴圈,稱為 foreach 迴圈或增強型 for 迴圈,它使您可以順序遍歷整個陣列,而無需使用索引變數。
以下程式碼顯示陣列 myList 中的所有元素:
示例:顯示陣列的所有元素
public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // Print all the array elements for (double element: myList) { System.out.println(element); } } }
這將產生以下結果:
輸出
1.9 2.9 3.4 3.5
將陣列傳遞給方法
就像您可以將基本型別的值傳遞給方法一樣,您也可以將陣列傳遞給方法。例如,以下方法顯示int陣列中的元素:
示例
public static void printArray(int[] array) { for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } }
您可以透過傳遞陣列來呼叫它。例如,以下語句呼叫 printArray 方法來顯示 3、1、2、6、4 和 2:
示例
printArray(new int[]{3, 1, 2, 6, 4, 2});
從方法返回陣列
方法也可以返回陣列。例如,以下方法返回另一個數組的反轉陣列:
示例
public static int[] reverse(int[] list) { int[] result = new int[list.length]; for (int i = 0, j = result.length - 1; i < list.length; i++, j--) { result[j] = list[i]; } return result; }
Arrays 類
java.util.Arrays 類包含各種靜態方法,用於對陣列進行排序和搜尋、比較陣列以及填充陣列元素。這些方法針對所有基本型別進行了過載。
序號 | 方法及描述 |
---|---|
1 | public static int binarySearch(Object[] a, Object key) 使用二分查詢演算法在指定的 Object 陣列(Byte、Int、double 等)中搜索指定的值。在呼叫此方法之前,必須先對陣列進行排序。如果搜尋鍵包含在列表中,則返回搜尋鍵的索引;否則,返回(-(插入點 + 1))。 |
2 | public static boolean equals(long[] a, long[] a2) 如果兩個指定的 long 型陣列彼此相等,則返回 true。如果兩個陣列包含相同數量的元素,並且兩個陣列中所有對應的元素對都相等,則認為這兩個陣列相等。如果兩個陣列相等,則返回 true。所有其他基本資料型別(Byte、short、Int 等)都可以使用相同的方法。 |
3 | public static void fill(int[] a, int val) 將指定的 int 值賦給指定 int 陣列的每個元素。所有其他基本資料型別(Byte、short、Int 等)都可以使用相同的方法。 |
4 | public static void sort(Object[] a) 根據其元素的自然順序,將指定的 Object 陣列排序為升序。所有其他基本資料型別(Byte、short、Int 等)都可以使用相同的方法。 |