TreeSets的使用示例:
import java.util.Set;
import java.util.TreeSet;
public class TreeSetTest {
public static void main(String[] args) {
Set<Integer> set = new TreeSet<Integer>();
//TreeSet自然排序
set.add(5);
set.add(2);
set.add(4);
set.add(3);
System.out.println(set);
//for each迭代集合,推荐使用for each来迭代集合
for(Integer i : set)
{
System.out.println(i);
}
}
}
运行结果:
定义一个Person类,在创建了几个Person类的对象后,把这些对象按照其年龄进行正序排列:
import java.util.*;
public class TreeSetTest2 {
public static void main(String[] args) {
Person p1 = new Person("张三", 23);
Person p2 = new Person("李四", 20);
Person p3 = new Person("王五", 16);
Person p4 = new Person("Lucy", 29);
Set<Person> set = new TreeSet<Person>(new Person());
set.add(p1);
set.add(p2);
set.add(p3);
set.add(p4);
//遍历set集合中的每个元素,元素类型都是Person类型
for(Person p : set)
{
System.out.println(p.name + " " + p.age);
}
}
}
//把person对象存到TreeSet中并且按照年龄排序
class Person implements Comparator<Person> {
int age;
String name;
public Person()
{
}
public Person(String name, int age)
{
this.name = name;
this.age = age;
}
@Override //对年龄进行正序排列
public int compare(Person o1, Person o2) {
if(o1.age > o2.age)
{
return 1;
}
else if(o1.age < o2.age)
{
return -1;
}
else
{
return 0;
}
}
}
**注意:**要想把Person类对象存放到set集合中,需要用到泛型来指定该类的类型,即 Set set = new TreeSet(new Person());
运行结果: