我有一个类型为 List(String,String)
的列表,我想将其转换为Map。当我使用 toMap
方法时,我发现它不保留List中数据的顺序。然而,我的目标是通过保持List中数据的顺序来将列表转换为Map。我了解到 ListMap
保留插入顺序(但是它是不可变的),所以我可以使用 LinkedHashMap
结合map函数来将数据顺序地插入 LinkedHashMap
中,但这意味着我需要迭代所有元素,这很麻烦。请问是否有更好的方法?谢谢。
我有一个类型为 List(String,String)
的列表,我想将其转换为Map。当我使用 toMap
方法时,我发现它不保留List中数据的顺序。然而,我的目标是通过保持List中数据的顺序来将列表转换为Map。我了解到 ListMap
保留插入顺序(但是它是不可变的),所以我可以使用 LinkedHashMap
结合map函数来将数据顺序地插入 LinkedHashMap
中,但这意味着我需要迭代所有元素,这很麻烦。请问是否有更好的方法?谢谢。
应该可以这样做:
val listMap = ListMap(list : _*)
: _*
,列表的元素将以可变参数的方式应用,据我所知。也许这个gist会有帮助。另请参见 https://dev59.com/9XNA5IYBdhLWcg3wVcFx 获取更多信息。 - Kevin Meredithmylist.to(ListMap)
(Scala >=2.13)。 - Hartmut Pfarrscala> import scala.collection.immutable.ListMap
import scala.collection.immutable.ListMap
scala> val list = List((1,2), (3,4), (5,6), (7,8), (9,0))
list: List[(Int, Int)] = List((1,2), (3,4), (5,6), (7,8), (9,0))
scala> list.to(ListMap)
res3: scala.collection.immutable.ListMap[Int,Int] = ListMap(1 -> 2, 3 -> 4, 5 -> 6, 7 -> 8, 9 -> 0)