在 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)
如果 collection
中 v2
的值小于 4,我想创建一个新集合 val colection2
。结果是一个包含 m1
的新集合只有.
我尝试了 foreach
和 filter
,但我无法访问 v2
的值
例如:val collection2 = collection.filter{case (key,v1,v2) => (v2 < 4) }
经过一些工作后我的回答:
val collection2 = for ( m <- collection if m("v2").asInstanceOf[Int] < 4) yield m
假设我有地图数组:
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)
如果 collection
中 v2
的值小于 4,我想创建一个新集合 val colection2
。结果是一个包含 m1
的新集合只有.
我尝试了 foreach
和 filter
,但我无法访问 v2
的值
例如:val collection2 = collection.filter{case (key,v1,v2) => (v2 < 4) }
经过一些工作后我的回答:
val collection2 = for ( m <- collection if m("v2").asInstanceOf[Int] < 4) yield m