我有一个用于缓存的地图(WeakHashMap)。我想根据值从地图中删除一些条目。我无法想出一种方法来做到这一点。
简单的方法是使用过滤器和基于键的过滤器。这将创建一个新地图而不是修改原始地图。
val newMap = map.filter((key, value) => <true/false based on value>)
如果可以构建您的应用程序以使用它,我会推荐它。
如果您需要从可变映射中删除元素(修改原始映射而不是创建新映射,您应该使用 foldLeft 循环遍历映射并创建与要删除的值对应的键列表
val keyList = map.foldLeft(List[KeyType]())((keys, pair) => if(pair._2 <should be removed>) pair._1 :: keys else keys)
keyList.foreach(map.remove)
pair 是当前元素的元组 _1 是键,_2 是值
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句