欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HashSet去重---重写hashcode()方法与equals()方法

程序员文章站 2024-03-23 15:03:04
...

1.判断set中的哈希表是否已存在要添加的对象,首先调用对象的hashcode方法,得出对应的hash值.

2.如果已存在,则会调用equals()方法判断各个属性的值是否相等,若属性值全部相等,返回true,视为相同元素,不添加到Hashset.如果不相等,则会添加到Hashset.

public class Bean {
	
	private Integer id;
	private String name;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	
	
	@Override
	public int hashCode() {
		// TODO Auto-generated method stub
		int hash = 0;
		hash = (id!=null?id.hashCode():0);
		hash = 31 * hash + (name!=null?name.hashCode():0);		
		return hash;
	}	
	@Override
	public boolean equals(Object obj) {
		// TODO Auto-generated method stub	
		
		if(obj !=null && obj.getClass() == Bean.class) {
			Bean bean = (Bean)obj;			
			if(this.getId() == bean.getId()&&this.getName() == bean.getName()) {
				return true;
			}			
		}
		return false;
	}

}