java - 是否有任何 log(n) 时间成本 Set 需要迭代才能插入(在 Java 中)?

标签 java set time-complexity

我需要一个 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/

相关文章:

c - while 循环时间复杂度 O(logn)

algorithm - 深度优先搜索 (DFS) 与广度优先搜索 (BFS) 伪代码和复杂性

java - 如何将坡度转换为度数,反之亦然?

java - 没有内部类的构建器模式

java - 为什么在 Spring 4.3 中不推荐使用 Velocity 支持?

c++ - 类类型错误 C++ with struct

java - 如何从 Fragment 中通过 id 查找按钮

set - 幂集与集合的笛卡尔积

c# - 指向未访问 set 关键字的属性的构造函数

algorithm - 试图找出时间复杂性