基于Map从List[String]转换为List[Int]
试图转换List[String]为List[Int]基于Map. 但是,如果键不存在,我将收到空指针异常。怎么处理?
val strList = ["a","b","not exist in map" ]
val myMap = Map(
"a" -> 1,
"b" -> 2
)
var myList = new ListBuffer[Int]()
strList.foreach(k =>
myList += myMap(k)
)
myList.toList
回答
这假设任何List不是Map键的条目都应该被忽略。
val strList = List("a", "b", "not exist in map")
val myMap = Map("a" -> 1, "b" -> 2)
val myList = strList.flatMap(myMap.get)
//myList: List[Int] = List(1, 2)
结果myList的顺序 由 中找到的键的顺序决定strList。