我想知道如何(如果可能)我可以通過HashMap[Int, Vector[Int]]
做出(可變)圖的鄰接表表示。當然,HashMap
是可變的。用HashMap [Int,Vector [Int]](Scala)表示圖形(鄰接列表)?
目前我把它設置爲HashMap[Int, ArrayBuffer[Int]]
,但我可以更改ArrayBuffer中的每個單元格的事實讓我感到不舒服,儘管我確信我沒有這樣做。我會使用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
我需要能夠既追加到它在任何時候,還內它訪問任何元素隨機(給定指數)。這可能嗎?
謝謝! -kstruct
你知道斯卡拉-圖? http://www.assembla.com/spaces/scala-graph/wiki – 2012-04-28 12:09:45
是的 - 這個項目主要是爲了讓自己更熟悉Scala,爲了我使用它,我只需要一個基本的圖類,沒有什麼太花哨。 – adelbertc 2012-04-28 19:11:11