如何获得和HashMap的
问题描述:
打印指定的值相同的条目,比如我有以下我的HashMap,键(整数)和值(整数也):如何获得和HashMap的
HashMap <Integer, Integer> mymap = new HasHmap <>();
mymap.put(1, 3);
mymap.put(2, 4);
mymap.put(3, 1);
mymap.put(4, 5);
mymap.put(5, 2);
打印输出:match found! [1,3] [3,1]
是否有可能在我的HashMap中查找并打印这样的比赛?你能教我如何?
答
下面是代码,但是你可以用类似样的办法解决方法。
输出是
1 - > 3
3 - > 1
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
class GfG {
public static void main(String[] args) {
HashMap<Integer, Integer> map = new HashMap<>();
map.put(1, 3);
map.put(2, 3);
map.put(5, 3);
map.put(3, 1);
map.put(6, 3);
Set<Entry<Integer, Integer>> entry = map.entrySet();
for(Entry<Integer, Integer> e: entry){
int key = e.getKey();
int value = e.getValue();
if(map.containsKey(value) && map.get(value) != null && map.get(value) == key){
System.out.println(key +" -> "+value);
}
}
}
}
+0
非常感谢!虽然我理解流程,但你能解释我设置
答
是的,这很简单,只要:
// loop over every entry
for (Entry<Integer, Integer> entry : mymap.entrySet()) {
// look up for current value, and check if it is equal to the key
if (mymap.get(entry.getValue()).equals(entry.getKey())) {
// it's a match!
System.out.println("[" + entry.getKey() + ", " + entry.getValue() + "]");
// stop after first match (asked in comments)
break;
}
}
这将输出:
[1, 3]
究竟是什么你想达到什么目的?并请添加一些你已经尝试过的代码 – Jonathan
嗯是的,这是可能的。只需查看[API](https://docs.oracle.com/javase/8/docs/api/java/util/Map.html)。 – Mena