簡體   English   中英

在HashMap中顯示鍵值

[英]Displaying key-values in HashMap

關於以下代碼,我有兩個問題,

1.我在哈希圖中有兩次“兩次”鍵,而在打印時,“兩次”僅顯示一次。為什么兩次不顯示“兩次”?

2.如何有選擇地顯示按鍵“兩個”?

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

public class main {
public static void main(String[] args){
HashMap<String,String> myMap = new HashMap<String,String>();

    myMap.put("one", "1");
    myMap.put("two", "2");
    myMap.put("three", "3");
    myMap.put("two", "4");

    Set <String> mySet =myMap.keySet();
    Iterator itr = mySet.iterator();

    while(itr.hasNext()){
        String key = (String) itr.next();
        System.out.println(key);
    }

}
}

哈希圖的鍵集中每個鍵只能有一個鍵條目。 當您對地圖使用相同的鍵(包括HashMap)時,第二次在地圖中放置鍵值對將覆蓋第一次。

如果要一對多映射,則可以使用將對象映射到對象集合的Multimap或HashMap(盡管Multimap最有可能使您更輕松地進行此操作)

要顯示給定鍵的值,請使用:

System.out.println(myMap.get(myKey));
System.out.println(myMap.get("two"));

HashtableHashMap是一對一的鍵值存儲。 這意味着一個鍵只能有一個元素。 您仍然可以通過以下方式實現您想要的:

HashMap<String, List<String>>

將元素添加到地圖時,必須將其添加到此鍵的列表中,即

public void add(String key, String value) {
    List<String> list = map.get(key);
    if (list == null) { //if the list does not exist, create it, only once
        list = new ArrayList<String>();
        map.put(key, list);
    }
    list.add(value);
}

現在,當您想使用此鍵獲取所有元素時:

List<String> elements = map.get("two");

該列表將包含您添加的所有元素。

暫無
暫無

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

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