TreeMap从添加第二个元素开始,需要进行排序,原始类继承Comparable<Student>接口实现compareTo方法。
- 自然排序,在Student类中重写compareTo方法,关于o的理解
@Override public int compareTo(Student o) { //关于o,是红黑树中从第二个开始进入的元素,需 //要和已存在的元素比较,该o是在第二个add //调用时,传入这里的Student对象。 //根据题设,先用年龄排序 int result = this.getAge() - o.getAge(); //如果年龄相同,则用name排序 result = result == 0 ? this.getName().compareTo(o.getName()) : result; return result; }
- 比较器排序
TreeMap<Student, String> tm = new TreeMap<>(采取匿名内部类形式,直接在此处new一个Comparator<Student>()接口);