TreeSet的原理是什么?使用需要注意什么?
TreeSet 基于 TreeMap 实现,TreeMap 基于红黑树实现
特点:
- 有序
- 无重复
- 添加、删除元素、判断元素是否存在,效率比较高,时间复杂度为 O(log(N))
使用方式:
- TreeSet 默认构造方法,调用 add() 方法时会调用对象类实现的 Comparable 接口的 compareTo() 方法和集合中的对象比较,根据方法返回的结果有序存储
- TreeSet 默认构造方法,存入对象的类未实现 Comparable 接口,抛出 ClassCastException
- TreeSet 支持构造方法指定 Comparator 接口,按照 Comparator 实现类的比较逻辑进行有序存储