[英]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"));
Hashtable
和HashMap
是一對一的鍵值存儲。 這意味着一個鍵只能有一個元素。 您仍然可以通過以下方式實現您想要的:
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.