android java --key 相同但包含密钥 return false
android java --key is same but containsKey return false
我必须将值放入 LinkedHashMap。
(因为,如果已经有值,我想排序和确定)
我认为 containsKey return 如果字符串值与 temp 和 temp2 相同,则为真。
但是,testMap.put(temp2,8); 是 运行.
我不知道为什么。
如果那不是正确答案,我怎样才能快速存储或访问值??
public class TestClass{
public String one;
public String two;
TestClass(String one, String two){
this.one=one;
this.two=two;
}
}
public void testPersonWord(){
LinkedHashMap<TestClass, Integer> testMap= new LinkedHashMap<>();
TestClass temp= new TestClass("hdy","hello");
testMap.put(temp,3);
TestClass temp2= new TestClass("hdy","hello");
if(testMap.containsKey(temp2)){
testMap.replace(temp2,5);
}else{
testMap.put(temp2,8);
}
}
这里是containKey
方法。 hashCode
是用来比较的,所以肯定两个对象的hashCode是不同的,不可能相等。
可以考虑使用primitive key或者使用TestClass.getOne()来比较String.
/**
* Returns <tt>true</tt> if this map contains a mapping for the
* specified key.
*
* @param key The key whose presence in this map is to be tested
* @return <tt>true</tt> if this map contains a mapping for the specified
* key.
*/
public boolean containsKey(Object key) {
return getNode(hash(key), key) != null;
}
希望对您有所帮助!
我必须将值放入 LinkedHashMap。 (因为,如果已经有值,我想排序和确定)
我认为 containsKey return 如果字符串值与 temp 和 temp2 相同,则为真。 但是,testMap.put(temp2,8); 是 运行.
我不知道为什么。 如果那不是正确答案,我怎样才能快速存储或访问值??
public class TestClass{
public String one;
public String two;
TestClass(String one, String two){
this.one=one;
this.two=two;
}
}
public void testPersonWord(){
LinkedHashMap<TestClass, Integer> testMap= new LinkedHashMap<>();
TestClass temp= new TestClass("hdy","hello");
testMap.put(temp,3);
TestClass temp2= new TestClass("hdy","hello");
if(testMap.containsKey(temp2)){
testMap.replace(temp2,5);
}else{
testMap.put(temp2,8);
}
}
这里是containKey
方法。 hashCode
是用来比较的,所以肯定两个对象的hashCode是不同的,不可能相等。
可以考虑使用primitive key或者使用TestClass.getOne()来比较String.
/**
* Returns <tt>true</tt> if this map contains a mapping for the
* specified key.
*
* @param key The key whose presence in this map is to be tested
* @return <tt>true</tt> if this map contains a mapping for the specified
* key.
*/
public boolean containsKey(Object key) {
return getNode(hash(key), key) != null;
}
希望对您有所帮助!