2
我想檢查一個地圖是否不包含空值。如果該值爲空,則不應將其包含在新地圖中。從地圖中刪除條目並返回新地圖
我想是這樣的:
val newmap = map.map{ entry => if(!entry._2.isEmpty()) Map(entry._1 -> entry._2)}
這不正是我想要的,但它是不是很漂亮。有更好的解決方案嗎?
我想檢查一個地圖是否不包含空值。如果該值爲空,則不應將其包含在新地圖中。從地圖中刪除條目並返回新地圖
我想是這樣的:
val newmap = map.map{ entry => if(!entry._2.isEmpty()) Map(entry._1 -> entry._2)}
這不正是我想要的,但它是不是很漂亮。有更好的解決方案嗎?
scala> Map(1 -> List(3, 4), 2 -> Nil, 3 -> List(11))
res2: scala.collection.immutable.Map[Int,List[Int]] = Map(1 -> List(3, 4), 2 -> List(), 3 -> List(11))
scala> res2.filter(_._2.nonEmpty)
res3: scala.collection.immutable.Map[Int,List[Int]] = Map(1 -> List(3, 4), 3 -> List(11))
scala>
你的意思是空作爲null?
scala> val map = collection.immutable.HashMap[Int, String] (1 -> "a", 2-> "b", 3 -> null)
map: scala.collection.immutable.HashMap[Int,String] = Map(1 -> a, 2 -> b, 3 -> null)
scala> val newmap=map filter (_._2 != null)
newmap: scala.collection.immutable.HashMap[Int,String] = Map(1 -> a, 2 -> b)
編輯:黨... @missingfaktor打我給它... :)
+1爲是計算器上的第一人,以正確拼寫我的筆名。 – missingfaktor 2012-01-18 20:28:36
@missingfaktor「複製和粘貼的力量是開發者的力量。」 – 2012-01-18 22:28:51