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提供了一種有序、不可重復的集合實現,適用于需要對元素進行排序和查找的場景。