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

Java 字串陣列反轉:使用 Collections.reverse 配合 List 轉換

     編輯:程式設計綜合問答

需求

將 String[] 反轉,**不建立新陣列**,僅使用原陣列空間。

方法:轉 List → 反轉 → 寫回陣列

String[] arr = {"A", "B", "C", "D"};
List<String> list = new ArrayList<>(Arrays.asList(arr));
Collections.reverse(list);
for (int i = 0; i < arr.length; i++) {
    arr[i] = list.get(i);
}
// arr 變為 {"D", "C", "B", "A"}

原地反轉演算法(無額外集合,O(1) 空間)

public static void reverseInPlace(String[] arr) {
    for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
        String tmp = arr[i];
        arr[i] = arr[j];
        arr[j] = tmp;
    }
}

效能比較

方法時間複雜度空間複雜度備註
Collections.reverse + ListO(n)O(n)程式碼簡潔,適合一般用途
原地雙指標交換O(n)O(1)嚴格符合「不建立新陣列/集合」

注意

  • 若陣列為基本型別(int[]),同樣適用雙指標交換。
  • Java 8+ 可用 Collections.reverse(Arrays.asList(arr)) 但 Arrays.asList 回傳固定大小列表,**支援 set 操作**,可直接反轉寫回原陣列。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved