我使用 java.util.Hashtable 创建了一个 java 字典,将字符串的 2 元组作为键,将 int 作为值。
class pair<e,f>{
public e one;
public f two;
}
我习惯于在上面的类中初始化一个字典:
Dictionary<pair<String, String>, Integer> dict = new Hashtable();
现在我无法检查字典中是否存在键,我的意思是我无法将字符串对作为参数传递给 dict.containsKey() 方法。
最佳答案
您需要为要用作哈希表键的内容实现hashCode
和equals
。如果您不这样做,将使用默认机制,这将使用对象标识,而不是对象相等(这意味着两个元组不被视为相等,即使它们包含“相等”条目)。
关键字段真的应该是不可变的,否则它也会破坏东西。
关于java - 检查java中字典中是否存在元组键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32324687/