HashSet(overwrite hashcode、equals方法、源码)
来源:互联网 发布:下载拼音打字软件 编辑:程序博客网 时间:2024/05/22 19:22
当使用Hashset时,hashCode方法就会得到调用,判断已经存储在集合中的对象的hashcode值是否与增加的对象的hashcode值一致;如果不一致,直接加进去,如果一致,再进行equals方法的比较,equals方法如果返回true表示对象已经加入了,就不会增加新的对象,否则加进去
同名的人不要增加到HashSet中
HashSet set = new HashSet();
set.add(new Person("zhangsan"));
set.add(new Person("zhangsan"));
class Person {
private String name;
Person(String name){
this.name = name;
}
public String getName(){
return name;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
HashSet的源码(HashSet的底层是HashMap实现)
public HashSet() {
map = new HashMap<E,Object>();
}
/*
当时有add的方法将对象加到Set中时,实际上是将该对象为底层所维护的map对象的key,而value则是同一个对象(该对象没有起什么作用)
*/
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
- HashSet(overwrite hashcode、equals方法、源码)
- HashSet 介绍, equals() 和hashcode()方法介绍
- HashSet (需要重写hashCode和equals方法)
- HashSet集合---HashCode方法与equals方法
- hashset中hashcode和equals方法
- HashSet存储元素equals() hashCode()方法重写
- JAVA HashSet equals hashcode
- L6: HashSet、hashCode()、equals()
- hashCode方法,equals方法,HashSet,HasMap之间的关系
- Java中HashSet要重写equals方法和hashCode方法
- 7 hashCode方法,equals方法,HashSet,HashMap关系?
- 向HashSet集合存入对象,去除重复元素(覆写equals和hashCode方法)
- 浅析HashSet中equals()与hashCode()方法的重写
- HashSet中equals()与hashCode()方法的重写
- HashSet中equals()与hashCode()方法的重写
- HashSet的hashcode()和equals()方法的分析说明
- HashSet中equals()与hashCode()方法的重写
- HashSet覆写equals 和hashcode 方法进行类别比较
- 自动分词算法的分类
- AndroidGUI12:ContextMenu的常用技巧
- CPLD/FPGA/Verilog_Verilog中阻塞与非阻塞的区别
- 重叠硬币覆盖桌面问题
- 一个简单的串口封装类
- HashSet(overwrite hashcode、equals方法、源码)
- 修改注册表添加IE信任站点及启用Activex控件
- 毕业好麻烦
- 搜索引擎技术揭密:中文分词技术
- MVC验证码
- 静态构造函数
- PWM控制直流电机 收藏
- ubuntu下安装vmware的问题
- Perl的数组与hash表使用的对比