簡體   English   中英

如何從 Kotlin 中的 Hashmap 獲取值的鍵值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM