首页 > 解决方案 > mutable.HashSet.keys 的时间复杂度是多少

问题描述

假设我正在实现以下类:

class Foo{
  val set = new mutable.HashSet[Int, Int]()

  def add(key: Int, value: Int) = {
    // do-stuff
    set.put(key, value)
  }

  def iterate() = {
    //iterate through all keys
  }
}

我的问题是关于一个有效的实现,iterate
我可以简单地使用set.keys和迭代Iterable[Int],但会keys在恒定时间内返回,还是它构造一个Itearble线性时间?

我知道我会一一收到所有的钥匙。实施一个mutable.HashSet只是为了存储所有的密钥,因为它们进来是矫枉过正的吗?
就像是

class Foo{
  val set = new mutable.HashSet[Int, Int]()
  val keys = new mutable.HashSet[Int]()

  def add(key: Int, value: Int) = {
    // do-stuff
    set.put(key, value)
    keys += key

  }

  def iterate() = {
    //iterate through all keys
    keys.foreach(f=>{

    })
  }
}

他们是实现这一目标的更有效方法吗?

标签: scaladata-structureshashmaptime-complexity

解决方案


推荐阅读