student实体类代码如下所示:
package com.test.Test10; public class StudentNiMingLei{ private int age; private String name; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public StudentNiMingLei(int age, String name) { this.age = age; this.name = name; } @Override public String toString() { return "Student{" + "age=" + age + ", name='" + name + '\'' + '}'; } } 测试类代码如下所示:
package com.test.Test10; import java.util.Comparator; import java.util.TreeSet; public class Test03NiMingLei { public static void main(String[] args) { //创建一个TreeSet //匿名内部类 TreeSet<StudentNiMingLei> ts = new TreeSet<>(new Comparator<StudentNiMingLei>() { @Override public int compare(StudentNiMingLei o1, StudentNiMingLei o2) { return o1.getName().compareTo(o2.getName()); } }); //一旦指定外部比较器,那么就会按照外部比较器来比较 ts.add(new StudentNiMingLei(10,"elili")); ts.add(new StudentNiMingLei(8,"blili")); ts.add(new StudentNiMingLei(4,"alili")); ts.add(new StudentNiMingLei(9,"clili")); ts.add(new StudentNiMingLei(10,"elili")); ts.add(new StudentNiMingLei(1,"dlili")); System.out.println(ts.size()); //放了6个数据,出来了5个,重复的删除了 System.out.println(ts); //[Student{age=4, name='alili'}, Student{age=8, name='blili'}, Student{age=9, name='clili'}, Student{age=1, name='dlili'}, Student{age=10, name='elili'}] 按照name值的升序进行排列了 } }