将 List[String] 转换为 Map[String,String]
Posted
技术标签:
【中文标题】将 List[String] 转换为 Map[String,String]【英文标题】:convert List[String] into Map[String,String] 【发布时间】:2021-12-21 00:34:19 【问题描述】:任何人都可以帮我按索引将字符串列表转换为 Map:(0,1) 作为键值对,index(2,3) 作为第二对,index(3,4) 作为第三对。
示例:List("asd","fgh","qwe","tyu")
转换为 Map("asd"->"fgh", "qwe"->"tyu")
【问题讨论】:
如果有奇数和重复元素,没问题,我只希望结果为映射,将索引 (0,1) 作为键值对,将 (2,3) 索引作为键值对。 那么,如果是奇数,List
中的最后一个字符串应该被忽略并且不包含在Map
结果中?
应该考虑奇数字符串,但它应该显示奇数字符串 -> " "(空值)
空字符串""
不是null
值。
对于一个奇数,我希望它为空字符串。
【参考方案1】:
这可以使用三种标准库方法来完成:
val list = List("asd","fgh","qwe","tyu")
list
.grouped(2) // Group elements in pairs
.map // Convert pairs to tuples
case a :: b :: Nil => a -> b // Normal values to tuple
case a :: Nil => a -> "" // Final value if list size is odd
.toMap // Convert List[(A, B)] to Map[A,B]
由于您正在创建Map
,因此如果多次出现相同的偶数值,则会出现重复的键,并且只有最后一对会出现在生成的Map
中。
(如果您是 Scala 新手,a -> b
语法是创建元组 (a, b)
的另一种方式,可以在这种情况下使用,以明确在一对)
【讨论】:
以上是关于将 List[String] 转换为 Map[String,String]的主要内容,如果未能解决你的问题,请参考以下文章
使用 java 8 流转换 List<Map<String,String>> 与“,”分隔的字符串值
将 List[String] 转换为 Map[String,String]
Java 8:将 Map<String, List<String>> 转换为 Map<String, String[]> [重复]
如何将map<string list<>>转换成城map<string,object>
如何将地图 List<Map<String, String>> myList 列表转换为 Java 中的 Spark Dataframe?
Dart:尽管强制转换,但无法将 List<dynamic> 转换为 List<Map<String, dynamic>>