[英]How to get key for value from Hashmap in Kotlin?
我有HashMap
在 Kotlin
val map = HashMap<String, String>()
我想知道如何從這個HashMap
中獲取特定值的鍵而不遍歷完整HashMap
?
使用filterValues {}
val map = HashMap<String, String>()
val keys = map.filterValues { it == "your_value" }.keys
keys
將是匹配給定值的所有鍵的集合
在最壞的情況下(如果映射中不存在匹配值),您將不得不遍歷整個 map。但是,此代碼將在找到匹配項后立即停止迭代:
val map = mapOf("a" to 1, "b" to 2, "c" to 3)
val matchingKey = map.entries.find { it.value == 3 }?.key
println(matchingKey) // prints "c"
如果您不斷地按值查找鍵,一個可能的解決方案是反轉 map ,這樣您就可以通過任何值獲取任何鍵。
例如:
val reversed = map.entries.associate{(k,v)-> v to k}
val resultKey = reversed[value]
希望能幫助到你!
在 Kotlin HashMap 中,您可以使用以下方式:
val hashMap = HashMap<String, String>() // Dummy HashMap.
val keyFirstElement = hashMap.keys.first() // Get key.
val valueOfElement = hashMap.getValue(keyFirstElement) // Get Value.
val keyByIndex = hashMap.keys.elementAt(0) // Get key by index.
val valueOfElement = hashMap.getValue(keyByIndex) // Get value.
您可以像這樣從價值中獲取關鍵。
for(Map.Entry<String, HashMap> entry : selects.entrySet()) {
String key = entry.getKey();
HashMap value = entry.getValue();
if (value == yourValue)
{
// your code here
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.