如何通过提供值从HashMap获取密钥?

kbz*_*kbz 0 java hashmap

private static HashMap<Script, String> scripts = new HashMap<>();

    public Script getScriptByName(String name) {
        for (String s : scripts.values()) {
            if (s.equals(name)) {
                ...
            }
        }
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

鉴于此代码,我如何获取特定值的键?

Lui*_*oza 6

改为浏览地图的条目:

for (Map.Entry<String, String> entry : scripts.entrySet()) {
    if (entry.getValue().equals(name)) {
        return entry.getKey();
    }
}

return null;      
Run Code Online (Sandbox Code Playgroud)