当前位置: 首页 > 知识库问答 >
问题:

在HashMap中显示键值

左凯定
2023-03-14

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

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);
    }

}
}

共有2个答案

闻昊英
2023-03-14

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");

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

蒯坚白
2023-03-14

Hashmaps的键集中每个键只能有一个键条目。第二次在map中放置一个键-值对将会覆盖第一次使用的键。

如果您想要一对多的映射,您可以使用一个Multimap或一个HashMap,将一个对象映射到一个对象集合(尽管Multimap很可能使您更容易做到这一点)

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

System.out.println(myMap.get(myKey));
System.out.println(myMap.get("two"));
 类似资料:
  • 问题内容: 我正在尝试在数据表中显示Hashmap,这是我要尝试的操作:我将具有一些产品的选择菜单,以及数量的输入文本,还有一个“ ajaxified”添加按钮,用于添加产品和它的数量到地图上,以及一个提交按钮,显示一个摘要对话框,其中包含一个包含两列的数据表:产品名称和数量。我的哈希图是 对于Ajaxified按钮和所有这些第一步,它们正在为我工​​作,我已设置了所有内容,并且正确填充了地图,剩

  • 我的应用程序:有两个活动,一个创建两个字符串(名称和消息),这两个字符串被保存到hashmap中,传输到JSON中,并保存在SharedPreference中。另一个活动获取这个SharedPreference,再次将其转移到hashmap中。然后地图被迭代器“读出”。 应该是:我的想法是,如果我多次执行这个过程,迭代器就会“读出”HashMap中的所有条目。

  • 我正试图从Java代码生成Swagger文档,我的嵌套模型属性之一是HashMap。生成的示例如下所示: 我需要它看起来像是: 换句话说,我需要告诉他们additionalProp字符串应该是什么,最好不要重复三次。有没有办法用夸张的注释来做到这一点?我不想硬编码一个完整的例子,因为CustomObject本身有很多属性,而且仍然在不断变化。有没有可能按照 (除了真正有效的东西)? 我尝试过以这种

  • 以下是相关的更新代码位。正如用户carmickr所建议的,我使用DefaultListModel来处理地址簿HashMap中的数据。 然后在UserInterface构造函数内部:

  • 问题内容: 这是一个简单的问题,我有一个简单的HashMap,我想将其反转键和值。 我想创建一个新的HashMap,在其中放置相反的内容。 问题答案: 它们都是独一无二的,是的 如果您确定自己的值是唯一的,则可以遍历旧地图的条目。 另外,您可以使用Guava提供的双向地图,并使用方法: 随着java-8的发布,您也可以通过以下方式进行操作: 最后,我将我的贡献添加到了质子包装库中,该库包含Stre

  • 问题内容: 键盘出现时如何显示完整的列表?键盘隐藏了列表的下部。 我的列表行中有一个textField。当键盘出现时,无法向下滚动以查看完整列表。键盘在列表的前面,而不在列表的“下面”。这是我的编码: 有人可以帮我怎么做吗? 非常感谢你。 问题答案: 这里有一个处理键盘操作的,您可以订阅这样的键盘事件: 然后像这样使用它: