//TreeSet有两种顺序排列:自然顺序和自定义顺序
import java.util.TreeSet;
public class TreeSetTest
{
public static void main(String[] args)
{
TreeSet set = new TreeSet();
set.add("C");
set.add("A");
set.add("B");
set.add("E");
set.add("F");
set.add("D");
System.out.println(set);
}
}
输出结果:[A, B, C, D, E, F]
//自定义TreeSet排序Compatator,以及用迭代遍历
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
public class TreeSetTest2
{
public static void main(String[] args)
{
TreeSet set = new TreeSet(new PersonComparator());
Person p1 = new Person(10);
Person p2 = new Person(20);
Person p3 = new Person(30);
Person p4 = new Person(40);
set.add(p1);
set.add(p2);
set.add(p3);
set.add(p4);
for(Iterator iter = set.iterator(); iter.hasNext();)
{
Person p = (Person)iter.next();
System.out.println(p.score);
}
}
}
class Person
{
int score;
public Person(int score)
{
this.score = score;
}
public String toString()
{
return String.valueOf(this.score);
}
}
class PersonComparator implements Comparator
{
public int compare(Object arg0, Object arg1)
{
Person p1 = (Person) arg0;
Person p2 = (Person) arg1;
return p2.score - p1.score;
}
}
//在compare方法中两个数值比较:如果小于则升序,等于则自然顺序,大于则降序
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
public class TreeSetTest3
{
public static void main(String[] args)
{
TreeSet set = new TreeSet(new MyComparator());
set.add("C");
set.add("A");
set.add("B");
set.add("E");
set.add("a");
set.add("F");
set.add("D");
for(Iterator iter = set.iterator(); iter.hasNext();)
{
String value = (String)iter.next();
System.out.println(value);
}
}
}
class MyComparator implements Comparator
{
public int compare(Object arg0, Object arg1)
{
String s1 = (String)arg0;
String s2 = (String)arg1;
return s2.compareTo(s1);
}
}