使用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
--------------------
相關文章
- 集合框架-TreeSet集合框架
- 【java】【集合】TreeSetJava
- Treeset的兩種排序方法排序
- Set集合的直接子類TreeSet
- 什麼是泛型?,Set集合,TreeSet集合自然排序和比較器排序,資料結構-二叉樹,資料結構-平衡二叉樹泛型排序資料結構二叉樹
- TreeSet重寫Comparator排序排序
- 集合框架-TreeSet保證元素唯一性和自然排序的原理和圖解框架排序圖解
- List集合(ArrayList-LinkedList);Set集合(HashSet-TreeSet)
- Java Set 常用集合 HashSet、LinkedHashSet、TreeSetJava
- Java集合系列(三):HashSet、LinkedHashSet、TreeSet的使用方法及區別Java
- 集合框架-TreeSet的add()方法的原始碼解析框架原始碼
- java TreeSet去重與排序入門Java排序
- 死磕 java集合之TreeSet原始碼分析Java原始碼
- Java集合框架原始碼剖析:TreeSet 和 TreeMapJava框架原始碼
- PLSQL Language Referenc-PL/SQL集合和記錄-集合構造器SQL
- Java集合(3)一 紅黑樹、TreeMap與TreeSet(上)Java
- Java集合(4)一 紅黑樹、TreeMap與TreeSet(下)Java
- 小解惑:查詢構造器與集合中的 get 方法
- 排序--最大堆構造和堆排序(單步檢視過程)排序
- Java集合中的排序方法Java排序
- 透過Treeset解決隨機數排序問題隨機排序
- TreeSet的特性
- TreeSet
- 集合框架-ArrayList集合儲存自定義物件的排序案例框架物件排序
- 排序演算法集合排序演算法
- Hibernate對集合排序排序
- Java中Collection Frame中常用集合簡析(ArrayList,Vector,HashSet,TreeSet...)Java
- Map集合的按時間排序方法排序
- Java常用資料結構之Set之TreeSetJava資料結構
- java集合物件排序總結Java物件排序
- Java集合詳解7:一文搞清楚HashSet,TreeSet與LinkedHashSet的異同Java
- Java 集合排序策略介面 ComparatorJava排序
- 十七、物件的構造物件
- Java--構造器和構造方法Java構造方法
- list集合按元素的某一屬性排序排序
- Java 集合中的排序演算法淺析Java排序演算法
- Java集合和陣列的排序方式總結Java陣列排序
- java基礎學習之十:集合型別Set/List/Map(TreeSet,LinkedList,TreeMap)Java型別