是否有任何log(n)时间成本Set为了插入而迭代(在Java中)?

时间:2014-02-23 20:21:13

标签: java set time-complexity

我需要一个具有log(n)时间成本的Set,用于添加,删除和包含方法,并且迭代以便元素插入。 Treeset可以做到这一点吗?如何?我知道LinkedHashList可以做到这一点,但没有log(n)时间费用。

1 个答案:

答案 0 :(得分:-1)

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