在Scala中,給出一個列表清單,如何從元素中創建一個嵌套的HashMap?我想創建HashMap作爲分層樹,這樣對於索引爲i的元素,索引爲i - 1的元素是其父元素。在Scala中,給出一個列表清單,我如何從元素中創建一個嵌套的HashMap?
示例已知長度的列表:
val lst = List (
List(34, 56, 78),
List(34, 56,79),
List (87, 23, 12),
List(87, 90, 78),
List(1, 45, 87)
)
scala> lst.groupBy(l => l(0))
.mapValues(l => l.groupBy(x => x(1)))
.mapValues{ case x => x.mapValues(y => y.map (z => z(2))) }
res2: scala.collection.immutable.Map[Int,scala.collection.immutable.Map[Int,List[Int]]] = Map(34 -> Map(56 -> List(78, 79)), 1 -> Map(45 -> List(87)), 87 -> Map(23 -> List(12), 90 -> List(78)))
當元件的長度是已知的,此方法有效但對於任意長度N.不起作用是否有可以創建這個嵌套地圖的任何解決方案每個列表具有相同長度的任何長度的列表?
爲什麼你把Java作爲你的一個標籤? –
爲什麼你不會創建一個多樹數據結構? – Chris