java - 检查java中字典中是否存在元组键

标签 java dictionary tuples

我使用 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() 方法。

最佳答案

您需要为要用作哈希表键的内容实现hashCodeequals。如果您不这样做,将使用默认机制,这将使用对象标识,而不是对象相等(这意味着两个元组不被视为相等,即使它们包含“相等”条目)。

关键字段真的应该是不可变的,否则它也会破坏东西。

关于java - 检查java中字典中是否存在元组键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32324687/

相关文章:

java - Android:在列表中搜索。搜索有效,但是当我单击搜索的单词时,它会重定向到列表中的第一项而不是搜索的项目

java - 使用 UCanAccess 从大文本文件插入数据非常慢

jquery - 如何在页面底部实现这种 "peeling"的效果呢?

python - 如何将元组元素组合到Python中的列表中

arrays - 在其类型签名中指定数组的长度

java - 如何使用比较器对 ArrayList 进行排序?我排序的变量是一个 int

java - 如何在 JavaFX 中触发 Textfield 监听器?

iphone - 在 iOS 方法内部,未设置字典的值

python - 使用Python中的自定义比较函数对字典键对象列表进行排序

python - join() 将当前字符串合并到下一个迭代字符串 :(?