当前位置: 首页 > 面试题库 >

如何在哈希图中打印具有重复值的键?

蒋奕
2023-03-14
问题内容

我有一些键指向相同值的哈希图。我想找到所有相等的值并打印相应的键。

这是我目前的代码

    Map<String, String> map = new HashMap<>();

    map.put("hello", "0123");
    map.put("hola", "0123");
    map.put("kosta", "0123");
    map.put("da", "03");
    map.put("notda", "013");

    map.put("twins2", "01");
    map.put("twins22", "01");


    List<String> myList = new ArrayList<>();

    for (Map.Entry<String, String> entry : map.entrySet()) {
       for (Map.Entry<String, String> entry2 : map.entrySet()){
           if (entry.getValue().equals(entry2.getValue()))
           {
               myList.add(entry.getKey());
           }
       }

    }

当前代码将重复项两次添加到列表中,但是也会将每个键一次添加一次。

谢谢。


问题答案:

您可以使用流以这种方式检索重复项:

  List<String> myList = map.stream()
     .filter(n -> Collections.frequency(map.values(), n) > 1)
     .collect(Collectors.toList());

然后,您可以使用以下命令将其打印出来:

myList.foreach(System.out::println);


 类似资料:
  • 我有一个哈希图,其中一些键指向相同的值。我想找到所有相等的值并打印相应的键。 这是我拥有的当前代码: 当前代码将重复项两次添加到列表中,但它也将每个键添加一次。 谢谢。

  • 我想在哈希图的帮助下打印密钥。我看到解决方案这些方法,但我找到正确的解决方案如果为 true,则打印密钥值。

  • 问题内容: 我有一个哈希图,如下所示: 1-> x 2-> y 3-> x 4-> z 现在我想知道所有值为x的键(ans:[1,3])。最好的方法是什么? 蛮力方式是仅遍历map并将所有键存储在值为x的数组中。 有什么有效的方法吗? 谢谢 问题答案: 您可以使用轻松获取所有这些重复的值。 打印输出: 每@ noahz 的建议,并需要更少的线,但可以说是更加复杂的阅读: 代替:

  • 我可以有一个哈希图在Java看起来像这样吗? 我的问题和这里的类似问题 我是Java新手。所以我想知道的是,如果我需要上面这样的东西,如果它无效,什么是最好的数据结构?

  • 问题内容: 我有bean“ MyBean”,它具有属性HashMap-“ map”,其值类型为MyClass。我想使用ui:repeat在jsf中显示map的一些属性。但是这些代码: 但是这段代码没有显示任何内容。虽然当我尝试以这种方式在jsp中显示hashmap值时,它已成功完成。我哪里错了?以及如何解决? 问题答案: 从文档中获取value属性: 此标签进行迭代的项目集合的名称。集合可以是,数

  • Java是将重复值保存为唯一值还是单独保存? 假设我有以下键值对值: 是否将其保存为3个键和3个值,或保存为3个键和2个值(A的值与C的值完全相同) 我担心的是大小,因为我要保存的值非常大,复制它们毫无意义。