TreeSet

    HashSet是基于Hash算法实现的,其性能通常优于TreeSet,我们通常都应该使用

HashSet,在我们需要排序的功能时,我门才使用TreeSet


TreeSet类型是J2SE中唯一可实现自动排序的类型,用法如下:

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} 


TreeSetTest.java
  import 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

猜你喜欢

转载自zhb0917.iteye.com/blog/1733211
今日推荐