Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果键在HashMap中匹配,则打印值_Java_Hashmap - Fatal编程技术网

Java 如果键在HashMap中匹配,则打印值

Java 如果键在HashMap中匹配,则打印值,java,hashmap,Java,Hashmap,如果键匹配,如何打印两个不同哈希映射的值 HashMap<String, String> color = new HashMap<String, String>(); HashMap<String, String> fruits = new HashMap<String, String>(); color.put("11", "red"); color.put("14", "blue"); color.put("26", "green"); fr

如果键匹配,如何打印两个不同哈希映射的值

HashMap<String, String> color = new HashMap<String, String>();
HashMap<String, String> fruits = new HashMap<String, String>();

color.put("11", "red");
color.put("14", "blue");
color.put("26", "green");
fruits.put("26", "banana");
fruits.put("11", "apple");
fruits.put("14", "melon");
我目前的尝试

for(int i=0; i<color.size(); i++){
            if(color.keySet().equals(fruits.keySet())){
                System.out.println("Its a match!");
            }

        }

for(inti=0;i使用一个流并将它们收集到一个新的映射

Map<String, String> map = color.entrySet().stream()
    .collect(Collectors.toMap(Map.Entry::getKey,
        e -> color.get(e.getKey()) + " " + fruits.get(e.getKey())));
System.out.println(map); // {11=red apple, 14=blue melon, 26=green banana}
Map Map=color.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey、,
e->color.get(e.getKey())+“”+fruits.get(e.getKey());
System.out.println(map);//{11=红苹果,14=蓝瓜,26=绿香蕉}
试试这个:

publicstaticvoidmain(字符串[]args){
HashMap color=新的HashMap();
HashMap水果=新的HashMap();
颜色。放置(“11”,“红色”);
颜色。放置(“14”,“蓝色”);
颜色。放置(“26”,“绿色”);
水果。放入(“26”,“香蕉”);
水果。把(“11”,“苹果”);
水果。把(“14”、“瓜”);
水果。放入(“15”,“测试”);
Set colorKeys=color.keySet();
Set fruitsKeys=fruits.keySet();
colorKeys.retainal(fruitsKeys);///colorKeys现在只包含两个集合中的元素
for(字符串键:颜色键){
字符串sColor=color.get(key);
字符串sFruit=fruits.get(键);
System.out.println(String.format(“%s:[%s%s]”),key,sColor,sFruit);
}
}
输出:

11 : [red  apple]
14 : [blue  melon]
26 : [green  banana]

我希望这个功能能起作用

public void get(Map<String, String> map1, Map<String, String> map2){
    for(Map.Entry m:map1.entrySet())
    {
        for(Map.Entry n:map2.entrySet())
        {
            if(m.getKey()==n.getKey())
            {
                System.out.println(m.getKey()+" : "+m.getValue()+" , "+n.getValue());
            }
        }
    }
}
public void get(地图map1、地图map2){
对于(Map.Entry m:map1.entrySet())
{
对于(Map.Entry n:map2.entrySet())
{
如果(m.getKey()==n.getKey())
{
System.out.println(m.getKey()+“:“+m.getValue()+”,“+n.getValue());
}
}
}
}

您尝试过什么吗?解决方案很简单。非常简单,我不愿意在不首先看到您尝试过的内容以及对失败原因的解释的情况下直接告诉您。您的“当前尝试”似乎根本不是为了产生您所说的您想要的结果。看起来您误解了
keySet()
。它提供了一组
HashMap
的所有键。因此,您已经了解了一些事情。我将给您一个提纲:迭代两个映射中任何一个的
键集。对于每个键,检查该键是否也存在于另一个映射中。如果是,则从两个映射中打印该键以及与该键相关的值。完成。所有您需要的操作d在这里:
public void get(Map<String, String> map1, Map<String, String> map2){
    for(Map.Entry m:map1.entrySet())
    {
        for(Map.Entry n:map2.entrySet())
        {
            if(m.getKey()==n.getKey())
            {
                System.out.println(m.getKey()+" : "+m.getValue()+" , "+n.getValue());
            }
        }
    }
}