equals()和hashCode()区别与重写

https://www.cnblogs.com/jesonjason/p/5492208.html
http://blog.csdn.net/javazejian/article/details/51348320

package com.pingan.haofang.agent.saas.dict.dto;

import java.util.List;

public class SubwayLineDtoTest {
    private Long sid;

    private String lineName;

    public Long getSid() {
		return sid;
	}

	public void setSid(Long sid) {
		this.sid = sid;
	}

	public String getLineName() {
        return lineName;
    }

    public void setLineName(String lineName) {
        this.lineName = lineName;
    }
    
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + sid.intValue();
        result = prime * result + ((lineName == null) ? 0 : lineName.hashCode());
        return result;
    }

    //使用alt + shift + s  然后选择h重写equals()方法
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        SubwayLineDtoTest other = (SubwayLineDtoTest) obj;
        if (sid != other.sid)
            return false;
        if (lineName == null) {
            if (other.lineName != null)
                return false;
        } else if (!lineName.equals(other.lineName))
            return false;
        return true;
    }
}

	  Map<SubwayLineDtoTest, List<SubwayStationDto>> stations = new HashMap<SubwayLineDtoTest, List<SubwayStationDto>>();
		      SubwayLineDtoTest compareSld = new SubwayLineDtoTest();
compareSld.setSid(Long.valueOf(subwayList.get(0).toString()));
		      compareSld.setLineName(subwayList.get(1).toString());
        	  if(stations.containsKey(compareSld)) {

猜你喜欢

转载自572327713.iteye.com/blog/2412201