【发布时间】:2015-03-25 17:20:06
【问题描述】:
我正在尝试更新我的 HashMaps 优先队列中的一个元素的值,但没有成功。这是我的做法:
def HashMapOrdering = new Ordering[HashMap[Int,Int]] {
def compare(a : HashMap[Int,Int], b : HashMap[Int,Int]) = b.valuesIterator.next().compare(a.valuesIterator.next())
}
def main(args: Array[String]) {
var seeds = PriorityQueue[HashMap[Int, Int]]()(HashMapOrdering)
seeds.enqueue(HashMap(4 -> 4), HashMap(234 -> 5), HashMap(78 -> 6), HashMap(89 -> 1))
seeds.find(x => x.get(89) == 1) match {
case Some(hashMap: HashMap[Int, Int]) => hashMap.remove(77); hashMap.put(77,32)
case None => println("Not found")
}
}
不幸的是,我总是收到“未找到”消息。关于我做错了什么或如何更新哈希值的任何想法?
【问题讨论】:
标签: scala hashmap priority-queue