TreeSet是Java集合框架中的一个类,它继承自AbstractSet类,并实现了NavigableSet接口。它是基于红黑树(Red-Black Tree)数据结构实现的,具有以下特点:
- TreeSet中的元素是有序的,默认按照元素的自然顺序进行排序,也可以通过传入Comparator对象来指定自定义排序规则。
- TreeSet中不允许包含重复元素,即集合中的元素都是唯一的。
- TreeSet支持高效的插入、删除和查找操作,时间复杂度为O(log n),其中n为集合中的元素个数。
- TreeSet不是线程安全的,如果在多线程环境下使用,需要通过使用Collections类提供的synchronizedSortedSet方法来实现同步。
TreeSet的常用方法包括:
- add(E e):向集合中添加元素。
- remove(Object o):从集合中移除指定的元素。
- contains(Object o):判断集合中是否包含指定的元素。
- size():返回集合中元素的个数。
- isEmpty():判断集合是否为空。
- iterator():返回一个迭代器,用于遍历集合中的元素。
- first():返回集合中的第一个元素。
- last():返回集合中的最后一个元素。
- higher(E e):返回集合中大于给定元素的最小元素。
- lower(E e):返回集合中小于给定元素的最大元素。
除了上述方法,TreeSet还继承了AbstractSet和AbstractCollection类中定义的其他方法,以及NavigableSet接口中定义的一些导航方法(如ceiling、floor、higher、lower等)。
总之,TreeSet提供了一种有序、不可重复的集合实现,适用于需要对元素进行排序和查找的场景。