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

Java 陣列輸出完全指南:從 for 迴圈到 Arrays.toString 與 deepToString

     編輯:Java 程式設計入門

在 Java 開發中,將陣列內容輸出到控制台是極為常見的需求。最直觀的方式是使用 for 迴圈逐一列印元素,但這樣寫不僅繁瑣,還容易出現格式錯誤(如尾端多出逗號)。本文將帶您從手動迴圈進階到標準庫工具,並解決多維陣列與異構陣列的輸出難題。

一、傳統 for 迴圈輸出

早期開發者常這樣寫:手動印出左中括號、迴圈處理前 n-1 個元素加逗號、最後單獨處理最後一個元素並補上右中括號。

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

輸出:[1, 2, 3]。雖然可行,但程式碼冗長且不易維護。

二、Arrays.toString():一維陣列的最佳拍檔

Java 標準庫 java.util.Arrays 提供了靜態方法 toString(),專門用於將一維陣列轉為可讀字串,自動處理格式與邊界。

import java.util.Arrays;

int arr[] = {1, 2, 3};
System.out.println(Arrays.toString(arr)); // 輸出:[1, 2, 3]

這行程式碼取代了整個 for 迴圈,語意清晰、效能優異,是日常開發的首選。

三、陷阱:異構陣列與多維陣列輸出的是「記憶體位址」

當陣列元素本身是陣列(如 Object[] 裝著 int[] 與 String[]),或是多維陣列時,Arrays.toString() 會呼叫元素的預設 toString(),輸出類似 [[I@158f9d3, [Ljava.lang.String;@79a2e7 的雜湊碼,而非實際內容。

int[] arr = {1, 2, 3};
String[] str = {"aaa", "bbb"};
Object[] array = {arr, str};
System.out.println(Arrays.toString(array));
// 輸出:[[I@158f9d3, [Ljava.lang.String;@79a2e7]

四、Arrays.deepToString():深度輸出巢狀結構

針對上述情況,Arrays.deepToString() 會遞迴走訪巢狀陣列,真正印出每一層的元素值。

System.out.println(Arrays.deepToString(array));
// 輸出:[[1, 2, 3], [aaa, bbb]]

無論是多維陣列、不規則陣列,還是混合型別的 Object[],deepToString() 都能正確呈現結構化內容,是除錯與日誌記錄的利器。

五、總結與最佳實踐

  • 一維基本型別/物件陣列:直接用 Arrays.toString()。
  • 多維陣列、巢狀陣列、Object[] 包含陣列:改用 Arrays.deepToString()。
  • 自訂物件陣列:確保物件類別已正確覆寫 toString(),兩個方法皆適用。

善用標準庫,少寫樣板碼,讓陣列輸出既優雅又可靠。

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