ade*_*rtc 3 scala graph vector adjacency-list
我想知道如何(如果可能的话)我可以通过制作(可变)图形的邻接列表表示HashMap[Int, Vector[Int]].HashMap当然是可变的.
目前我把它设置为HashMap[Int, ArrayBuffer[Int]],但事实上我可以改变ArrayBuffer中的每个单元格让我感到不舒服,即使我很确定我不是那样做的.我会使用a ListBuffer[Int]但我希望快速随机访问邻居,因为我需要在图上进行快速随机游走.A Vector[Int]会解决这个问题,但无论如何都要这样做吗?
据我所知(在REPL中尝试过),这不起作用:
scala> val x = new mutable.HashMap[Int, Vector[Int]]
x: scala.collection.mutable.HashMap[Int,Vector[Int]] = Map()
scala> x(3) = Vector(1)
scala> x(3) += 4 // DOES NOT WORK
Run Code Online (Sandbox Code Playgroud)
我需要能够随时附加到它并随机访问其中的任何元素(给定索引).这可能吗?
谢谢!-kstruct
使用Vector:
x += 3 -> (x(3) :+ 4) //x.type = Map(3 -> Vector(1, 4))
Run Code Online (Sandbox Code Playgroud)
您可能会注意到,如果没有现有密钥,这将失败,因此您可能希望将地图设置为
val x = new mutable.HashMap[Int, Vector[Int]] withDefaultValue Vector.empty
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1027 次 |
| 最近记录: |