java - HashMap 中的键映射到相同的值?

标签 java

正如标题所示,我必须编写一个方法,如果映射中的 2 个字符串键没有相同的字符串值,则为 true,否则为 false。我编写了以下方法。但是,它在所有情况下都返回 true。这里的建议会有所帮助。

public static boolean isUnique(Map<String,String> map)
    {
        Iterator<String> iter=map.keySet().iterator();
        while(iter.hasNext())
        {
            String s=iter.next();
            if(map.containsValue(s))
                return false;
        }
        return true;
    }

提前致谢

最佳答案

最简单的方法是将值放入集合中。由于集合不能包含重复值,因此如果集合的大小等于 map 的大小,则 map 不包含任何重复值。

public static boolean areValuesUnique(Map<?,?> map) {
    return new HashSet<>(map.values()).size() == map.size();
}

关于java - HashMap 中的键映射到相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22695739/

相关文章:

java - 为什么 Intellij IDEA 不接收我的 java JDK

java - picasso 加载图像后将图像保存在SD卡中

java - 从 csv 文件行创建 Java 对象的开销是多少

java - CamelContext.start() 不会阻塞

java - 我是否需要创建工厂的测试版本以进行单元测试?

java - 我的第一个 hibernate 项目中应该包含哪些 jar 文件?

java - 为什么我的代码不从命令行获取输入?

java - 为什么这些可变参数方法(在 Java 6 中工作正常)在 Java 8 中是不明确的

java - 什么方法/类等使用这个 .jar?

java - 在Android中,如何在尊重fling加速的同时实现listview的snap效果?