gpt4 book ai didi

java - 如何在 HashMap 中打印具有重复值的键?

转载 作者:行者123 更新时间:2023-12-05 05:11:35 24 4
gpt4 key购买 nike

我有一个 hashmap,其中一些键指向相同的值。我想找到所有相等的值并打印相应的键。

这是我目前的代码:

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

关于java - 如何在 HashMap 中打印具有重复值的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55309116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com