Gov*_*ngh 42 collections dictionary scala playframework scala-collections
Map(data -> "sumi", rel -> 2, privacy -> 0, status -> 1,name->"govind singh")
Run Code Online (Sandbox Code Playgroud)
如果隐私为0,如何从此地图中删除数据.
Map(rel -> 2, privacy -> 0, status -> 1,name->"govind singh")
Run Code Online (Sandbox Code Playgroud)
Leo*_*Leo 59
如果使用不可变映射,则可以使用该-方法创建没有给定键的新映射:
val mx = Map("data" -> "sumi", "rel" -> 2, "privacy" -> 0)
val m = mx("privacy") match {
case 0 => mx - "data"
case _ => mx
}
=> m: scala.collection.immutable.Map[String,Any] = Map(rel -> 2, privacy -> 0)
Run Code Online (Sandbox Code Playgroud)
如果您使用可变映射,则可以使用-=或删除密钥remove.
Kev*_*ght 24
如果您想扩大规模并删除多个成员,那么filterKeys最好的选择是:
val a = Map(
"data" -> "sumi",
"rel" -> "2",
"privacy" -> "0",
"status" -> "1",
"name" -> "govind singh"
)
val b = a.filterKeys(_ != "data")
Run Code Online (Sandbox Code Playgroud)
Sud*_*kar 10
这取决于您使用的Scala.collection Map的类型.Scala附带两个mutable和immutable地图.检查以下链接:
http://www.scala-lang.org/api/2.10.2/index.html#scala.collection.immutable.Map
和
http://www.scala-lang.org/api/2.10.2/index.html#scala.collection.mutable.Map
在这两种类型的地图中,-通常是删除键的操作.细节取决于地图的类型.甲mutable地图来代替通过使用进行修改-=.就像是
if (m.contains("privacy") && m.getOrElse("privacy", 1) == 0) {
m -= "play"
}
Run Code Online (Sandbox Code Playgroud)
另一方面,不能在适当的位置修改不可变映射,并且必须在删除元素后返回新映射.
if (m.contains("privacy") && m.getOrElse("privacy", 1) == 0) {
val newM = m - "play"
}
Run Code Online (Sandbox Code Playgroud)
请注意,您正在创建一个新的不可变映射.
| 归档时间: |
|
| 查看次数: |
37283 次 |
| 最近记录: |