之前是使用集合工具类collections的sort方法,通过实现Comparator的接口,重写compare方法来实现排序,第二种是通过treeset来实现排序,具体的呢是要在实体类中实现comparable接口,重写compareTo方法:
具体实现如下:
public static void main(String[] args) { Employee employee1 = new Employee(1, "张三", "男", 20, "123"); Employee employee2 = new Employee(2, "李四", "女", 18, "123"); Employee employee3 = new Employee(3, "王五", "男", 22, "123"); TreeSet<Employee> ts = new TreeSet<>(); ts.add(employee1); ts.add(employee2); ts.add(employee3); Iterator<Employee> it = ts.iterator(); while(it.hasNext()) { System.out.println(it.next()); }
@Override public int compareTo(Object o) { if(o instanceof Employee) { Employee e = (Employee) o; if(e.id>this.id) { return 1; }else if(e.id<this.id) { return -1; } } return 0; }
关于compareTo中的0,1,-1,还是之前的,大放左,小放右,一样不添加,因为set是元素唯一的。