Java 在哈希表中找到值时打印密钥

Java 在哈希表中找到值时打印密钥,java,hashmap,hashtable,Java,Hashmap,Hashtable,当发现或存在键值时,我试图在哈希表中打印键值。此代码似乎不起作用 Map<String,Integer> map = new HashMap<String, Integer>(); for(int j=0;j<al.size();j++){ Integer count = map.get(al.get(j)); map.put(al.get(j), count==null?1:co

当发现或存在键值时,我试图在哈希表中打印键值。此代码似乎不起作用

    Map<String,Integer> map = new HashMap<String, Integer>();
    for(int j=0;j<al.size();j++){            
        Integer count = map.get(al.get(j));       
        map.put(al.get(j), count==null?1:count+1);   //auto boxing and count

    }
    int max = Collections.max(map.values());
    if( map.containsValue(max))
    {

     System.out.println(map.keySet());
    }
Map Map=newhashmap();

对于(int j=0;j首先,这些值可能出现多次-我假设您要打印所有匹配的键

其次,哈希表基本上不是为按值查找而设计的,因此必须迭代所有条目:

// Adjust types accordingly
for (Map.Entry<String, String> entry : map.entrySet()) {
    if (entry.getValue().equals(targetValue)) {
        System.out.println(entry.getKey());
    }
}
//相应地调整类型
对于(Map.Entry:Map.entrySet()){
if(entry.getValue().equals(targetValue)){
System.out.println(entry.getKey());
}
}

如果某些值可能为空,则应更改相等检查。

如果哈希映射包含最大值,则应打印其对应的键。哈希表和映射非常新。非常感谢您的帮助。感谢您打印所有键而不是您想要的键吗?是的,它正在打印所有键。您好,是的。我是正在尝试打印所有匹配的类型。Map.entry又是如何工作的?我对java和哈希表非常陌生。@user872009:Map.entry
类型是“哈希表中的一个条目”-一个键/值对。
entrySet()
方法返回一组可以迭代的条目。