我有一些键指向相同值的哈希图。我想找到所有相等的值并打印相应的键。
这是我目前的代码:
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的值完全相同) 我担心的是大小,因为我要保存的值非常大,复制它们毫无意义。