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

Scala-过滤掉数组中的空值[Map[String,Int]],scala,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)) 我想删除此数组中的空元素,以获得如下结果: Array[Map[String,Int]]

我有一个[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))
我想删除此数组中的空元素,以获得如下结果:

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。我怎样才能过滤掉这两个空值呢?

您只需检查
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)

希望这有帮助!

过滤器的简写符号:。过滤器(!=null)