加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用谓词从scala可变地图中删除元素的正确方法是什么?

发布时间:2020-12-16 09:11:45 所属栏目:安全 来源:网络整理
导读:如何做,而不创建任何新的集合?有没有比这更好的东西? val m = scala.collection.mutable.Map[String,Long]("1" - 1,"2" - 2,"3" - 3,"4" - 4)m.foreach(t = if (t._2 % 2 == 0) m.remove(t._1))println(m) 附:在Scala 2.8 解决方法 保留做你想要的在2.7:
如何做,而不创建任何新的集合?有没有比这更好的东西?

val m = scala.collection.mutable.Map[String,Long]("1" -> 1,"2" -> 2,"3" -> 3,"4" -> 4)
m.foreach(t => if (t._2 % 2 == 0) m.remove(t._1))
println(m)

附:在Scala 2.8

解决方法

保留做你想要的在2.7:

val a = collection.mutable.Map(1->"one",2->"two",3->"three")
a: scala.collection.mutable.Map[Int,java.lang.String] = 
  Map(2 -> two,1 -> one,3 -> three)

scala> a.retain((k,v) => v.length < 4)   

scala> a
res0: scala.collection.mutable.Map[Int,java.lang.String] =
  Map(2 -> two,1 -> one)

它也是有效的,但是我觉得在2.8中还是有效的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读