如何从Scala的Seq[Map[String,String]]中过滤空Map元素
解决方案
你可以直接利用Scala集合自带的判空方法和过滤方法实现,代码非常简洁:
核心代码
// 原始数据 val originalSeq: Seq[Map[String, String]] = Seq(Map("Name"-> "Laura", "City" -> "Paris"), Map("Country" -> "Italy"), Map()) // 写法1:使用filter过滤保留非空Map val result1 = originalSeq.filter(_.nonEmpty) // 写法2:使用filterNot移除空Map,两种写法效果完全一致 val result2 = originalSeq.filterNot(_.isEmpty)
说明
- Scala 中
Map类型自带isEmpty、nonEmpty两个原生方法,可直接判断当前Map是否为空 Seq的filter方法会保留所有满足判断条件的元素,filterNot则会移除满足判断条件的元素,两种写法都可以得到你需要的结果:// 输出结果:Seq(Map(Name -> Laura, City -> Paris), Map(Country -> Italy)) println(result1)
内容的提问来源于stack exchange,提问作者Didi
相关产品推荐
相关产品推荐

