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

Java ArrayList 兩次排序後結果被覆蓋問題

     編輯:程式設計疑難解答

代碼截圖1 代碼截圖2

問題分析

對同一個 List 對象連續調用兩次 Collections.sort() 或 list.sort(),第二次排序會直接修改原列表順序,覆蓋第一次結果。

解決方法

  • 若需保留兩種排序結果,複製列表後再排序:
List list1 = new ArrayList<>(originalList);
List list2 = new ArrayList<>(originalList);
Collections.sort(list1, comparator1);
Collections.sort(list2, comparator2);
  • 或使用 Java 8 Stream:originalList.stream().sorted(comparator1).collect(Collectors.toList()) 產生新列表。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved