HashMap列表列表[列表索引] - >列表 - Scala

时间:2016-06-07 20:11:32

标签: list scala hashmap

我在Scala中有一个列表列表,看起来像这样:List(List(1, 5, 6, 10), List(1, 6), List(1, 3, 10),我想转换     它进入HashMap[Int, List[Int]],其中第一个Int是每个列表的索引,List[Int]是列表本身。最后HashMap应该     看起来像

 HashMap[Int, List[Int]](
      0 -> List(1, 5, 6, 10),
      1 -> List(1, 6),
      2 -> List (1, 3, 10),)

这是我的方法,在列表的长度上有一个列表0并用这个嵌套列表压缩它,然后以某种方式       将其转换为HashMap。但我正在寻找更惯用或更整洁的东西。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

带有zipWithIndex的{​​{1}}应该这样做:

map

修改

如果你绝对需要一个scala> val a = List(List(1, 5, 6, 10), List(1, 6), List(1, 3, 10)) a: List[List[Int]] = List(List(1, 5, 6, 10), List(1, 6), List(1, 3, 10)) scala> a.zipWithIndex.map(_.swap).toMap res0: scala.collection.immutable.Map[Int,List[Int]] = Map( 0 -> List(1, 5, 6, 10), 1 -> List(1, 6), 2 -> List(1, 3, 10) ) ,事情会有点麻烦:

HashMap