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