是否有任何方法可以检查 HashMap 是否包含一组特定的键(这些键是在数组中给出的)。当我尝试类似下面的代码时,它返回 false。
map.containsKey(arrayOf("2018-01-16"))
如果我尝试以下代码,它可以工作,但我需要检查键,并且我需要搜索的键的数量不固定。
map.containsKey("2018-01-16")
最佳答案
您可以从按键本身开始,并使用 all
标准库中的函数:
val map = hashMapOf(...)
val keys = arrayOf("2018-01-16", "2018-01-17", "2018-01-18")
val containsAllKeys = keys.all { map.containsKey(it) }
<小时/>
如果您经常这样做并且希望在 Map
上拥有此功能类型,您可以随时将其添加为扩展名:
fun <K, V> Map<K, V>.containsKeys(keys: Array<K>) = keys.all { this.containsKey(it) }
val containsAllKeys = map.containsKeys(arrayOf("2018-01-16", "2018-01-17"))
您可能还想使用另一个采用 Iterable<K>
的函数来重载该扩展。作为参数。
关于hashmap - Kotlin HashMap 使用数组包含键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47849076/