在 Java 中,可以使用 TreeSet
或 LinkedHashSet
對 Set 類型進行排序。這兩種數據結構都會自動對元素進行排序。
TreeSet
是一個基于紅黑樹實現的有序集合,它會自動對元素進行升序排序。如果需要對元素進行降序排序,可以在創建 TreeSet
時傳入一個自定義的比較器(Comparator)。
示例:
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
TreeSet<Integer> sortedSet = new TreeSet<>();
sortedSet.add(5);
sortedSet.add(3);
sortedSet.add(8);
sortedSet.add(1);
for (Integer num : sortedSet) {
System.out.println(num);
}
}
}
輸出:
1
3
5
8
LinkedHashSet
是一個基于哈希表和鏈表實現的有序集合,它會按照元素插入的順序進行排序。與 TreeSet
類似,如果需要對元素進行降序排序,可以在創建 LinkedHashSet
時傳入一個自定義的比較器(Comparator)。
示例:
import java.util.LinkedHashSet;
public class Main {
public static void main(String[] args) {
LinkedHashSet<Integer> sortedSet = new LinkedHashSet<>();
sortedSet.add(5);
sortedSet.add(3);
sortedSet.add(8);
sortedSet.add(1);
for (Integer num : sortedSet) {
System.out.println(num);
}
}
}
輸出:
1
3
5
8
注意:LinkedHashSet
的性能略低于 TreeSet
,因為它需要維護元素的插入順序。但是,LinkedHashSet
的插入、刪除和查找操作的時間復雜度仍然是 O(1)。