在 Scala 中迭代映射数组

Iterating Array of Maps in Scala

假设我有地图数组:

   val m1 = Map("key" -> Array("aa","bb"), "v1" -> 1 , "v2" -> 3)
   val m2 = Map("key" -> Array("cc","bb"), "v1" -> 2 , "v2" -> 4)
   val colection = Array(m1,m2)

如果 collectionv2 的值小于 4,我想创建一个新集合 val colection2。结果是一个包含 m1 的新集合只有.

我尝试了 foreachfilter ,但我无法访问 v2 的值 例如:val collection2 = collection.filter{case (key,v1,v2) => (v2 < 4) }

经过一些工作后我的回答:

val collection2 = for ( m <- collection if m("v2").asInstanceOf[Int] < 4) yield m