java - IdentityHashMap 类是否错误?

标签 java

我使用java.util.IdentityHashMap进行了测试,请参阅

public class IdentityHashMapTest{
    public static void main(String args[]) {
        Map<String, String> m = new IdentityHashMap<String, String>();
        m.put("John", "Doe");
        m.put("John", "Paul");
        System.out.println(m.size());
    }
}

根据Java API所说,

This class implements the Map interface with a hash table, using reference-equality in place of object-equality when comparing keys (and values)

结果可能是2。但实际是1。 IdentityHashMap 类是否错误?

最佳答案

更改为

       m.put("John", "Doe");
       m.put(new String("John"), "Paul");

它将有两个条目。字符串文字是池化的,因此 "John"== "John"

关于java - IdentityHashMap 类是否错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12213877/

相关文章:

java - JCheckBox下的JLabel

java - 如何使用jdbc和sql查询编写条件?

java - 部署 war : No Spring WebApplicationInitializer types detected on classpath

java - Java中通过字段名查找对象的值

java - Gson 会忽略 JsonElement 字段上的 @JsonAdapter 吗?

java - 初学者 Java 项目建议

java - 方法中的方法替换 boolean 语句

java - java 网络应用程序中用于身份验证的任何库?

java - Android隐藏状态栏、兼容性

java - Spring 3.1 : How do I inject a bean created in a different configuration class