public class trees { public static void main(String[] args) { //泛型是Integer Set<Integer> set = new TreeSet<Integer>(); //TreeSet自然排序 set.add(1); set.add(6); set.add(7); set.add(4); set.add(9); set.remove(6); System.out.println(set); System.out.println(set.contains(1)); //用迭代器遍历集合 Iterator<Integer> it1=set.iterator(); while (it1.hasNext()){ System.out.println(it1.next()); } System.out.println("==================="); for(Object obj:set){ System.out.println(obj); } } }
输出结果:
[1, 4, 7, 9]
true
1
4
7
9
===================
1
4
7
9
当用类中的某个属性进行比较排序时,比如以人(类)的年龄大小来排序
public class tree2 { public static void main(String[] args) { Person p1=new Person(12,"李华"); Person p2=new Person(15,"李哈"); Person p3=new Person(18,"李虎"); Person p4=new Person(10,"李和"); Set<Person> set=new TreeSet<Person>(new Person()); set.add(p1); set.add(p2); set.add(p3); set.add(p4); for (Person b:set){ System.out.println(b.name+" "+b.age); } } } //把Person对象存到TreeSet中并且按照年龄排序 class Person implements Comparator<Person> { int age; String name; public Person(){ } public Person(int age, String name){ this.age=age; this.name=name; } //年龄正序排列 @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; } } }
输出结果:
李和 10
李华 12
李哈 15
李虎 18