0
我正在使用一個使用的TrieMap,我在其上執行一個.mapValues()操作,該操作返回一個MapLike []對象。但我需要將其轉換爲HashMap或任何可序列化的Map來維護排序順序,因爲它必須通過網絡傳輸。什麼是最有效的方式來做到這一點?Scala - 將TrieMap轉換成HashMap
我正在使用一個使用的TrieMap,我在其上執行一個.mapValues()操作,該操作返回一個MapLike []對象。但我需要將其轉換爲HashMap或任何可序列化的Map來維護排序順序,因爲它必須通過網絡傳輸。什麼是最有效的方式來做到這一點?Scala - 將TrieMap轉換成HashMap
使用.mapValues
實際上並沒有創建新的TrieMap
,它只是返回原始視圖。要實際轉換並在舊集合中創建新的TrieMap
,可以使用帶有稍微不同的簽名的.transform
方法,該方法返回相同類型的新集合。唯一的缺點是你必須使用相同的值類型:
scala> val map = TrieMap(1->5).transform((k, v) => v + 1)
map: scala.collection.concurrent.TrieMap[Int,Int] = TrieMap(1 -> 6)
scala> :t map
scala.collection.concurrent.TrieMap[Int,Int]
'yourTrieMap.toMap'? – moem
TrieMap是可序列化的,HashMap不維護順序。我真的不知道你的問題 – kosii
由於地圖不能維持秩序,你可以從'.toSeq'開始,看它是否能滿足你的需求?如果需要,也許SortedMap? – wwkudu