Scalaでは、リストのリストがあると、要素から1つの入れ子になったHashMapを作成するにはどうすればよいですか?私は、インデックスiの要素について、インデックスi-1の要素がその親であるような階層ツリーとしてHashMapを作成したいと思います。既知の長さのリストのScalaでは、リストのリストを渡して、どのようにして要素から1つの入れ子になったHashMapを作成できますか?
例:要素の長さが知られているが、任意の長さNのために動作しない場合
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)))
この方法が機能するために、このネストされたマップを作成することができます任意の解決策はありますすべてのリストの長さが同じ長さのリスト?
なぜあなたはタグの1つとしてJavaを使用していますか? –
なぜマルチツリーデータ構造を作成しないのですか? – Chris