> For the complete documentation index, see [llms.txt](https://junnie.gitbook.io/nine-chapter/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://junnie.gitbook.io/nine-chapter/8.data-structure/summary/treeset.md).

# TreeSet

平衡二叉树，增删查改复杂度都是 O(logN)，底层维护是红黑树

比如用 Java 提供的 `TreeSet` 容器，底层是红黑树

第一，`TreeSet` 是一种 `Set`，其中不存在重复元素的元素.

第二，`TreeSet` 并没有实现一个通过排名快速计算元素的 API。假设我想找到 `TreeSet` 中第 5 大的元素，并没有一个现成可用的方法实现这个需求。

返回某个集合 lower、floor、ceiling 和 higher 分别返回小于、小于等于、大于等于、大于给定元素的元素，如果不存在这样的元素，则返回 null。

* tSet.ceiling() public E ceiling​(E e)&#x20;

返回此set中大于或等于给定元素的最小元素，或者null如果没有这样的元素。

* tSet.floor() public E floor(E e)&#x20;

返回此set中小于或等于给定元素的最大元素，或者null如果没有这样的元素。

* tSet.lower() public E lower​(E e)&#x20;

返回此集合中的最大元素严格小于给定元素，或者null如果没有这样的元素。&#x20;

* tSet.higher() public E higher​(E e)&#x20;

返回此集合中的最小元素严格大于给定元素，或者null如果没有这样的元素。&#x20;
