TreeMap
- TreeMap (由键决定特点):按照键的大小默认升序排序、不重复、无索引
- 特点:不重复、无索引、可排序(按照键的大小默认升序排序,只能对键排序)
- 原理:TreeMap跟TreeSet集合的底层原理是一样的,都是基于红黑树实现的排序
TreeSet:Set系列集合:Hashset、LinkedHashset、TreeSet --java学习笔记-CSDN博客
TreeMap集合同样也支持两种方式来指定排序规则
- 让类实现Comparable接口,重写比较规则
- TreeMap集合有一个有参数构造器,支持创建Comparator比较器对象,以便用来指定比较规则
- 方式一:让自定义的类(如学生类)实现comparable接口,重写里面的compareTo方法来指定比较规则
import java.util.Objects; public class Student implements Comparable<Student>{ private String name; private String sex; private double height; //按照身高升序排序 @Override public int compareTo(Student o) { return Double.compare(this.getHeight(), o.getHeight()); } //...... }
- 方式二:通过调用TreeSet集合有参数构造器,可以设置Comparator对象比较器对象,用于指定比较规则
import java.util.*; public class MapTest7 { public static void main(String[] args) { Map<Student,String> map = new TreeMap<>(new Comparator<Student>() { @Override public int compare(Student o1, Student o2) { return Double.compare(o1.getHeight(),o2.getHeight()); } }); } }