【发布时间】:2015-11-03 11:12:06
【问题描述】:
我正在使用 HashMap: byte[] 键和字符串值。但我意识到,即使我使用
放置相同的对象(相同的字节数组和相同的字符串值)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<K, V>[] tab = table;
for (HashMapEntry<K, V> e = tab[hash & (tab.length - 1)];
e != null; e = e.next) {
K eKey = e.key;
if (eKey == key || (e.hash == hash && key.equals(eKey))) {
return true;
}
}
return false;
}
【问题讨论】:
标签: java android list hashmap containskey