Java 在HashMap中显示键值

Java 在HashMap中显示键值,java,hashmap,Java,Hashmap,关于下面的代码我有两个问题 1.我的hashmap中有两次键“two”,打印时,“two”只显示一次。为什么不显示两次 2.如何有选择地显示“二”键 import java.util.HashMap; 导入java.util.Iterator; 导入java.util.Set; 公共班机{ 公共静态void main(字符串[]args){ HashMap myMap=新HashMap(); myMap.put(“一”、“一”); myMap.put(“2”、“2”); myMap.put(“三

关于下面的代码我有两个问题

1.我的hashmap中有两次键“two”,打印时,“two”只显示一次。为什么不显示两次

2.如何有选择地显示“二”键

import java.util.HashMap;
导入java.util.Iterator;
导入java.util.Set;
公共班机{
公共静态void main(字符串[]args){
HashMap myMap=新HashMap();
myMap.put(“一”、“一”);
myMap.put(“2”、“2”);
myMap.put(“三”、“三”);
myMap.put(“两个”、“四个”);
设置mySet=myMap.keySet();
迭代器itr=mySet.Iterator();
while(itr.hasNext()){
字符串键=(字符串)itr.next();
系统输出打印项次(键);
}
}
}

哈希映射的键集中每个键只能有一个键条目。当您对映射(包括HashMap)使用相同的键时,第二次在映射中放置键值对将覆盖第一次

如果需要一对多映射,可以使用将对象映射到对象集合的Multimap或HashMap(尽管Multimap很可能会使这更容易实现)

要显示给定键的值,请使用:

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

Hashmaps的键集中每个键只能有一个键条目。当您对映射(包括HashMap)使用相同的键时,第二次在映射中放置键值对将覆盖第一次

如果需要一对多映射,可以使用将对象映射到对象集合的Multimap或HashMap(尽管Multimap很可能会使这更容易实现)

要显示给定键的值,请使用:

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

Hashtable
HashMap
是一对一的键值存储。这意味着对于一个键,只能有一个元素。您仍然可以通过以下方式实现您的目标:

HashMap<String, List<String>>
HashMap
将元素添加到映射时,必须将其添加到此键的列表中,即

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);
}
public void add(字符串键、字符串值){
List=map.get(键);
如果(list==null){//如果列表不存在,则只创建一次
列表=新的ArrayList();
地图。放置(键、列表);
}
列表。添加(值);
}
现在,当您要使用此键获取所有元素时:

List<String> elements = map.get("two");
List elements=map.get(“两个”);

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

Hashtable
HashMap
是一对一的键值存储。这意味着对于一个键,只能有一个元素。您仍然可以通过以下方式实现您的目标:

HashMap<String, List<String>>
HashMap
将元素添加到映射时,必须将其添加到此键的列表中,即

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);
}
public void add(字符串键、字符串值){
List=map.get(键);
如果(list==null){//如果列表不存在,则只创建一次
列表=新的ArrayList();
地图。放置(键、列表);
}
列表。添加(值);
}
现在,当您要使用此键获取所有元素时:

List<String> elements = map.get("two");
List elements=map.get(“两个”);

该列表将包含您添加的所有元素。

Java Map是一对一对象,因此只有最后输入的值才会从映射中提取。选择性地显示两个可能的重复项是什么意思?仅显示键“2”,而不是mapJava Map中的所有键都是一对一对象,因此,仅从映射中提取最后输入的值。您的意思是选择性地显示两个可能的重复项,仅显示键“2”,而不是映射中的所有键实际上这是
map
接口的一部分,不是特定于
HashMap
,也不是特定于Java的,但这是地图习惯用法的一般工作方式(编程和数学,可能还有更多)。实际上,这是
map
接口的一部分,不是特定于
HashMap
,也不是特定于Java的,而是地图习惯用法的一般工作方式(编程和数学,可能还有更多)。