(자바) HashSet의 커스텀 클래스 중복 제거 하기!
커스텀 클래스의 중복여부는 클래스 내부안에 hashCode와 equasl메소드를 생성해 주어야 한다.
예)
HashSet<Node> hm=new HashSet();
//x,y좌표를 가지고 있는 노드
class Node
{
int x;
int y;
Node(int x,int y)
{
this.x=x;
this.y=y;
}
@Override
public int hashCode()
{
return Integer.toString(x).hashCode()+Integer.toString(y).hashCode();
}
@Override
public boolean equals(Object o)
{
if(o==null)
return false;
Node temp=(Node) o;
if(temp.x==this.x && temp.y==this.y)
return true;
else
return false;
}
}
예)
HashSet<Node> hm=new HashSet();
//x,y좌표를 가지고 있는 노드
class Node
{
int x;
int y;
Node(int x,int y)
{
this.x=x;
this.y=y;
}
@Override
public int hashCode()
{
return Integer.toString(x).hashCode()+Integer.toString(y).hashCode();
}
@Override
public boolean equals(Object o)
{
if(o==null)
return false;
Node temp=(Node) o;
if(temp.x==this.x && temp.y==this.y)
return true;
else
return false;
}
}
댓글
댓글 쓰기