【发布时间】:2011-08-03 16:33:34
【问题描述】:
我目前在 java 中的 Hashtable 存在一些问题,其中 FEightPuzzle 是我创建的一个类。
在我的类中,我有一个字符串,用于存储每个实例的密钥。现在,在我的程序中,当我在 Hashtable 中检查重复实例时,我有时会“找到”一些,而实际上找到的实例是不同的。
以我调用 bol.containsKey(current.key) 为例,其中 bol 是 HT,current 是 FEightPuzzle。
如果这是真的,我会检查键的值,它们是
current.key =
"8 14 11 0 6 12 13 1 10 4 5 9 15 2 3 7"
bol.get(current.key).key =
"12 8 4 0 13 9 5 1 14 10 6 2 15 11 7 3"
有价值观
current.key.hashCode() = -950607924
bol.get(current.key).key.hashCode() = -1856769042
很抱歉打扰你,但这个问题真的很困扰我,这是我今晚最不想说实话(你不喜欢那个)......任何提示或答案将不胜感激!
【问题讨论】:
-
附带说明,
Hashtable已过时,最好使用HashMap(或ConcurrentHashMap,如果您需要线程安全)。 -
您是否可能正在更改已添加到地图中的项目的键(不删除并重新添加它们以保持地图完整性)?
-
好问题,但不,我认为这不可能。实例的状态在初始化时设置,从那时起没有进行任何更改 - 这就是创建密钥的地方
-
你能贴出将对象添加到 HT 的代码吗?
标签: java string key hashtable hashcode