Tag: containskey

Java HashMap containsKey为现有对象返回false

我有一个用于存储对象的HashMap: private Map fields = Collections.synchronizedMap(new HashMap()); 但是,当试图检查密钥的存在时, containsKey方法返回false 。 equals和hashCode方法,但找不到密钥。 调试一段代码时: return fields.containsKey(bean) && fields.get(bean).isChecked(); 我有: bean.hashCode() = 1979946475 fields.keySet().iterator().next().hashCode() = 1979946475 bean.equals(fields.keySet().iterator().next())= true fields.keySet().iterator().next().equals(bean) = true 但 fields.containsKey(bean) = false 什么可能导致这种奇怪的行为? public class Address extends DtoImpl implements Serializable{ @Override public int hashCode() { final int prime = 31; int result = 1; result […]

带字节数组键和字符串值的HashMap – containsKey()函数不起作用

我正在使用HashMap:byte []键和String值。 但我意识到即使我使用相同的对象(相同的字节数组和相同的字符串值) myList.put(TheSameByteArray, TheSameStringValue) 在HashMap中,表仍然插入一个具有不同HashMapEntry的新对象。 然后函数containsKey()无法正常工作。 有人可以帮我解释一下吗? 我怎样才能解决这个问题? 谢谢。 (Android Java) @Override public boolean containsKey(Object key) { if (key == null) { return entryForNullKey != null; } int hash = Collections.secondaryHash(key); HashMapEntry[] tab = table; for (HashMapEntry e = tab[hash & (tab.length – 1)]; e != null; e = e.next) { K eKey = […]