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

Java 陣列 12 大高頻操作實戰精選

     編輯:Java 相關知識

前言

整理自 StackOverflow 高票回答,涵蓋日常開發 90% 以上陣列操作場景。代碼均經 JDK 17 驗證。

1. 多種聲明建立方式

String[] a = new String[5];
String[] b = {"a","b","c","d","e"};
String[] c = new String[]{"a","b","c","d","e"}; // 匿名陣列

2. 陣列轉字串輸出

int[] nums = {1,2,3,4,5};
System.out.println(Arrays.toString(nums)); // [1, 2, 3, 4, 5]
// 直接印 nums 會輸出 [I@7150bd4d (地址)

3. 陣列轉 ArrayList

String[] arr = {"a","b","c"};
List list = new ArrayList<>(Arrays.asList(arr));
// 注意:Arrays.asList 返回固定大小列表,不可 add/remove

4. 判斷陣列包含某值

boolean contains = Arrays.asList(arr).contains("a"); // true
// 原始類型需用循環或 Stream: IntStream.of(intArr).anyMatch(x -> x == 3)

5. 合併兩個陣列

// Apache Commons Lang
int[] combined = ArrayUtils.addAll(arr1, arr2);

// 純 JDK (Java 8+)
int[] combined = IntStream.concat(Arrays.stream(arr1), Arrays.stream(arr2)).toArray();

6. 內聯陣列傳參

method(new String[]{"a","b","c"}); // 無需預先定義變數

7. 陣列元素連接成字串

// Apache Commons Lang
String joined = StringUtils.join(new String[]{"a","b","c"}, ", "); // a, b, c

// JDK 8+ StringJoiner / String.join
String joined = String.join(", ", "a", "b", "c");

8. List 轉陣列

List list = Arrays.asList("a","b","c");
String[] arr = list.toArray(new String[0]); // 推薦 new Type[0] 讓 JVM 優化

9. 陣列轉 Set(去重)

Set set = new HashSet<>(Arrays.asList(arr));
// 順序不保證,需有序用 LinkedHashSet

10. 反轉陣列

// Apache Commons Lang
ArrayUtils.reverse(intArr);

// 手動雙指針
for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
    int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp;
}

11. 移除元素(建立新陣列)

// Apache Commons Lang
int[] removed = ArrayUtils.removeElement(arr, 3); // 移除值為 3 的元素

// 手動:Stream 過濾
int[] removed = Arrays.stream(arr).filter(x -> x != 3).toArray();

12. int 轉 byte[](網絡傳輸/序列化常用)

byte[] bytes = ByteBuffer.allocate(4).putInt(8).array();
// 大端序:0x00 0x00 0x00 0x08
// 小端序用 ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN).putInt(8).array()

進階補充

  • 並行排序:Arrays.parallelSort(largeArr) 利用 ForkJoinPool,大陣列更快
  • 陣列比較:Arrays.equals(arr1, arr2) / Arrays.deepEquals(多維)
  • 填充:Arrays.fill(arr, val) / Arrays.setAll(arr, i -> i*2)
  • 流式操作:Arrays.stream(arr).filter(...).map(...).toArray()

總結

熟練掌握 Arrays、ArrayUtils、Stream API 三套工具鏈,能以最少代碼解決陣列 99% 操作需求。生產環境優先用標準庫,避免手寫循環引入 Bug。

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