我需要一个 Set,它具有添加、删除和包含方法的 log(n)
时间成本,并且它会迭代以插入元素。 Treeset
可以做到这一点吗?如何?我知道 LinkedHashList
可以做到这一点,但没有 log(n)
时间成本。
最佳答案
TreeSet 可以做到这一点。在内部,它使用红黑树实现来存储元素,从而为插入/删除/搜索元素提供 O(log n) 的渐近保证。
- 插入 - O(log n)
- 删除 - O(log n)
- 包含 - O(log n)
为了迭代列表,有两种类型的迭代器可用:
Iterator<E> iterator()
Returns an iterator over the elements in this set in ascending order.
public Iterator<E> descendingIterator()
Returns an iterator over the elements in this set in descending order.
可以引用文档link
关于java - 是否有任何 log(n) 时间成本 Set 需要迭代才能插入(在 Java 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21973991/