使用TreeSet構造排序的集合
TreeSet型別是J2SE中唯一可實現自動排序的型別,用法如下:
MyComparator.java
TreeSetTest.java
執行結果:
--------------------
MyComparator.java
1package test;
2
3import java.util.Comparator;
4
5public class MyComparator<T> implements Comparator<T> {
6
7 public int compare(T arg0, T arg1) {
8 if (arg0.equals(arg1)) {
9 return 0;
10 }
11 return ((Comparable<T>) arg0).compareTo(arg1) * -1;
12 }
13
14}
2
3import java.util.Comparator;
4
5public class MyComparator<T> implements Comparator<T> {
6
7 public int compare(T arg0, T arg1) {
8 if (arg0.equals(arg1)) {
9 return 0;
10 }
11 return ((Comparable<T>) arg0).compareTo(arg1) * -1;
12 }
13
14}
TreeSetTest.java
1package test;
2
3import java.util.Iterator;
4import java.util.TreeSet;
5
6public class TreeSetTest {
7
8 /**
9 * @param args
10 */
11 public static void main(String[] args) {
12
13 MyComparator<String> myComparator = new MyComparator<String>();
14
15 // /////////////////////不新增自定義排序
16 TreeSet<String> treeSet1 = new TreeSet<String>();
17 treeSet1.add("c");
18 treeSet1.add("a");
19 treeSet1.add("b");
20
21 Iterator<String> iterator1 = treeSet1.iterator();
22 while (iterator1.hasNext()) {
23 System.out.println(iterator1.next());
24 }
25
26 // /////////////////////新增自定義排序
27 TreeSet<String> treeSet2 = new TreeSet<String>(myComparator);
28 treeSet2.add("c");
29 treeSet2.add("a");
30 treeSet2.add("b");
31
32 Iterator<String> iterator2 = treeSet2.iterator();
33 while (iterator2.hasNext()) {
34 System.out.println(iterator2.next());
35 }
36 }
37
38}
39
2
3import java.util.Iterator;
4import java.util.TreeSet;
5
6public class TreeSetTest {
7
8 /**
9 * @param args
10 */
11 public static void main(String[] args) {
12
13 MyComparator<String> myComparator = new MyComparator<String>();
14
15 // /////////////////////不新增自定義排序
16 TreeSet<String> treeSet1 = new TreeSet<String>();
17 treeSet1.add("c");
18 treeSet1.add("a");
19 treeSet1.add("b");
20
21 Iterator<String> iterator1 = treeSet1.iterator();
22 while (iterator1.hasNext()) {
23 System.out.println(iterator1.next());
24 }
25
26 // /////////////////////新增自定義排序
27 TreeSet<String> treeSet2 = new TreeSet<String>(myComparator);
28 treeSet2.add("c");
29 treeSet2.add("a");
30 treeSet2.add("b");
31
32 Iterator<String> iterator2 = treeSet2.iterator();
33 while (iterator2.hasNext()) {
34 System.out.println(iterator2.next());
35 }
36 }
37
38}
39
執行結果:
a
b
c
c
b
a
b
c
c
b
a
--------------------
相關文章
- 【java】【集合】TreeSetJava
- Set集合的直接子類TreeSet
- 什麼是泛型?,Set集合,TreeSet集合自然排序和比較器排序,資料結構-二叉樹,資料結構-平衡二叉樹泛型排序資料結構二叉樹
- TreeSet重寫Comparator排序排序
- List集合(ArrayList-LinkedList);Set集合(HashSet-TreeSet)
- Java Set 常用集合 HashSet、LinkedHashSet、TreeSetJava
- 4、Set集合——HashSet、TreeSet(Comparable、Comparator)
- Java集合系列(三):HashSet、LinkedHashSet、TreeSet的使用方法及區別Java
- java TreeSet去重與排序入門Java排序
- 死磕 java集合之TreeSet原始碼分析Java原始碼
- Java集合(3)一 紅黑樹、TreeMap與TreeSet(上)Java
- Java集合(4)一 紅黑樹、TreeMap與TreeSet(下)Java
- Java集合中的排序方法Java排序
- 小解惑:查詢構造器與集合中的 get 方法
- 透過Treeset解決隨機數排序問題隨機排序
- 排序--最大堆構造和堆排序(單步檢視過程)排序
- TreeSet
- 排序演算法集合排序演算法
- Map集合的按時間排序方法排序
- Java集合詳解7:一文搞清楚HashSet,TreeSet與LinkedHashSet的異同Java
- Java 集合排序策略介面 ComparatorJava排序
- java集合物件排序總結Java物件排序
- Java常用資料結構之Set之TreeSetJava資料結構
- list集合按元素的某一屬性排序排序
- Java 集合中的排序演算法淺析Java排序演算法
- Mybatis-Plus - 條件構造器 QueryWrapper 的使用MyBatisAPP
- 訪問器於構造器的高階使用
- C# 泛型集合的自定義型別排序C#泛型型別排序
- 十七、物件的構造物件
- List集合按照由小到大排序或者由大到小排序排序
- Java--構造器和構造方法Java構造方法
- Numpy 排序搜尋計數與集合操作排序
- C++ 建構函式實戰指南:預設構造、帶引數構造、複製構造與移動構造C++函式
- 三,TreeMap和HashMap,TreeSet和HashMap的區別以及方法使用上的不同HashMap
- 使用jMeter構造大量併發的隨機HTTP請求JMeter隨機HTTP
- 使用openSSL構造一個支援https的nodejs伺服器HTTPNodeJS伺服器
- 外測度的構造
- Python中如何使用構造方法定義類Python構造方法
- 如何使用建造者模式構造複雜物件?模式物件