TreeSet 和TreeMap 排序
TreeSet 有两种排序方式 1. Java.lang.Comparble+compareTo new TreeSet() 用这种方法必须要求实体类实现Comparable接口,也就是说要求添加到TreeSet中的元素是可排序的 2. java.util.Comparator +compare 举个TreeSet栗子: package com.etc.test; import java.util.Comparator; import java.util.TreeSet; import com.etc.entity.Person; public class TreeSetDemo { public static void main(String[] args) { Person p1=new Person("depp",100); Person p2=new Person("tom",90); Person p3=new Person("jack",50); TreeSet<Person> ts=new TreeSet<Person>( new Comparator<Person>() { public int compare(Person o1,Person o2){ return o1.getHandsome()-o2.getHandsome();//升序 } } ); ts.add(p1); ts.add(p2); ts.add(p3); System.out.println(ts); /* * 排序结果没有改变,是因为TreeSet在添加元素的时候进行排序,需要注意,数据更改不会影响原来的顺序 还有一点需要注意的是,TreeSet中不可以数据重复,所以一般不修改数据,为了确保这一点,我们可以在Person类为属性加上final关键字,删除setter方法 */ p3.setHandsome(200);//改变数据,排序不会改变 System.out.println(ts); } } 举个TreeMap栗子: package com.etc.test; import java.util.Comparator; import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; import com.etc.entity.Person; public class TreeMapDemo { public static void main(String[] args) { Person p1=new Person("depp",100); Person p2=new Person("tom",90); Person p3=new Person("jack",50); TreeMap<Person, String> tm=new TreeMap<Person, String>(new Comparator<Person>() { public int compare(Person o1,Person o2) { return o1.getHandsome()-o2.getHandsome();//升序 } }); tm.put(p1, "ttt"); tm.put(p2, "ttt"); tm.put(p3, "ttt"); System.out.println(tm); //也可以用set进行输出 TreeMap也是在添加元素时进行排序 Set<Person> set=tm.keySet(); System.out.println(set); } }