簡體   English   中英

如何在Hashmap中返回特定值的鍵?

[英]How can i return the keys of a specific value in Hashmap?

我的HashMap中有以下條目

<key1,value1>
<key2,value2>
<key3,value2>
<key4,value4>
<key5,value2>

我想找到所有包含值“ value2”的鍵。 答案是一個包含以下鍵的KeySet:{key2,key3,key4}

是否有可能在HashMap中完成? 謝謝

Map應該以通過鍵訪問值的方式使用,但似乎您是在反向進行。

如果您確定自己在做什么,則沒有好的方法可以完成。 遍歷地圖並將密鑰存儲在單獨的列表中。

詳細了解Gauva的Multimap ,它可能適合您的要求。

我想找到所有包含值“ value2”的鍵。 答案是一個包含以下鍵的KeySet:{key2,key3,key4}

兩種選擇:

  • 新地圖,其中值是鍵,鍵是值(如果每個鍵和值都是唯一的)
  • 遍歷地圖的條目,並檢查當前條目的值是否等於“ value2”,如果是,則將其與結果集一起添加

只是迭代地圖的條目,並檢查當前條目的值是否等於“ value2”,然后將其添加到Set中。 嘗試這個

Set<String> keySet = new HashSet<String>();
for (Map.Entry<String, String> entry : map.entrySet())
{
    if(entry.getValue().equals("value2")
    {
      keySet.add(entry.getKey());
    }

}

我猜沒有其他選擇,因為您的地圖中有重復的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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