hash写equals需要注意的地方
来源:互联网 发布:ao史密斯管培生 知乎 编辑:程序博客网 时间:2024/05/16 09:01
碰到这样一个问题,我在用hashmap的时候,map.containsKey(key)
我希望调用的是自己的equals方法,但是map就是不肯调用我的equals
后来解决了,因为hashmap用的是hash算法,equals比较特别
除了写equals,还要写一个
public int hashCode() ...{
// TODO Auto-generated method stub
return key1.hashCode()+key2.hashCode();
}
// TODO Auto-generated method stub
return key1.hashCode()+key2.hashCode();
}
把equals中需要的值的hashcode返回出来
下面是一个实例
public class Keys implements Serializable...{
String key1;
String key2;
/** *//**
* @return Returns the key1.
*/
public String getKey1() ...{
return key1;
}
/** *//**
* @param key1 The key1 to set.
*/
public void setKey1(String key1) ...{
this.key1 = key1;
}
/** *//**
* @return Returns the key2.
*/
public String getKey2() ...{
return key2;
}
/** *//**
* @param key2 The key2 to set.
*/
public void setKey2(String key2) ...{
this.key2 = key2;
}
public boolean equals(Object obkey)
...{
Keys key=(Keys)obkey;
if(key==null||key.getKey1()==null||key.getKey2()==null)
return false;
if(key.getKey1().equals(this.key1)&&key.getKey2().equals(this.key2))
return true;
return false;
}
public String toString()
...{
String m="key1:"+this.key1+" key2:"+this.key2;
return m;
}
/**//* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
public int hashCode() ...{
// TODO Auto-generated method stub
return key1.hashCode()+key2.hashCode();
}
}
String key1;
String key2;
/** *//**
* @return Returns the key1.
*/
public String getKey1() ...{
return key1;
}
/** *//**
* @param key1 The key1 to set.
*/
public void setKey1(String key1) ...{
this.key1 = key1;
}
/** *//**
* @return Returns the key2.
*/
public String getKey2() ...{
return key2;
}
/** *//**
* @param key2 The key2 to set.
*/
public void setKey2(String key2) ...{
this.key2 = key2;
}
public boolean equals(Object obkey)
...{
Keys key=(Keys)obkey;
if(key==null||key.getKey1()==null||key.getKey2()==null)
return false;
if(key.getKey1().equals(this.key1)&&key.getKey2().equals(this.key2))
return true;
return false;
}
public String toString()
...{
String m="key1:"+this.key1+" key2:"+this.key2;
return m;
}
/**//* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
public int hashCode() ...{
// TODO Auto-generated method stub
return key1.hashCode()+key2.hashCode();
}
}
- hash写equals需要注意的地方
- 重写equals时需要注意的地方
- 写lua时需要注意的地方
- 对于使用equals 需要注意的一处地方
- 需要注意的地方
- 需要注意的地方
- 需要注意的地方
- Pear 的Excel类写数据需要注意的地方
- 存储过程写插入语句需要注意的地方
- 写正确函数需要注意的地方:strstr
- 写正确函数需要注意的地方:二分查找
- 写正确函数需要注意的地方:快速排序
- php写mysql语句需要注意的一个小地方
- 把二分查找算法写正确需要注意的地方
- 写代码过程中需要注意的地方
- hashCode 和 equals 正确用法和需要注意的地方(面试基本都会问)
- java需要注意的地方
- 考試時需要注意的地方
- eclipse出错汇总
- Windows Mobile 5.0 Today Screen Plugin
- eclipse使用技巧
- 【转载】IEEE 投稿指南
- Microsoft Message Queuing介绍
- hash写equals需要注意的地方
- [转]Javascript中最常用的55个经典技巧
- JAVA程序员必读---编程中的一些共同的问题
- Java面试中的陷阱
- VC用法汇总 (一)
- 震憾——如此创业者
- 网线接法
- C/C++中函数指针的含义
- 数据结构学习笔记--串的模式匹配