Scala - 过滤掉数组中的空值[Map [String,Int]]

时间:2018-04-22 12:55:19

标签: scala

我有一个[Map [String,Int]数组,如下所示:

val orArray = Array(Map("x" -> 24, "y" -> 25, "z" -> 26), null, Map("x" -> 11, "y" -> 22, "z" -> 33), null, Map("x" -> 111, "y" -> 222, "z" -> 333))

我想删除此数组中的null元素,以获得类似:

Array[Map[String,Int]] = (Map("x" -> 24, "y" -> 25, "z" -> 26),  Map("x" -> 11, "y" -> 22, "z" -> 33),  Map("x" -> 111, "y" -> 222, "z" -> 333))

到目前为止我正在尝试这个

orArray.filterNot(p => p.isEmpty)

但它会生成NullPointerException。我怎么能过滤掉这两个空值?

1 个答案:

答案 0 :(得分:1)

您只需将null值检查为

即可
orArray.filter(map  => map != null)

输出:

Map(x -> 24, y -> 25, z -> 26), Map(x -> 11, y -> 22, z -> 33), Map(x -> 111, y -> 222, z -> 333)

希望这有帮助!