hashCode( )
이 메서드는 해싱(hashing)기법에 사용되는 '해시함수(hash function)'를 구현한 것이다.
해싱은 데이터관리기법 중의 하나인데 다량의 데이터를 저장하고 검색하는 데 유용하다.
해시함수는 찾고자하는 값을 입력하면, 그 값이 저장된 위치를 할려주는 해시코드를 반환한다.
import java.util.HashMap;
public class AddrTest {
public static void main(String[] args) {
Addr a1 = new Addr(1, "1길동", "영등포");
Addr a2 = new Addr(2, "2길동", "당산");
Addr a3 = new Addr(1, "1길동", "영등포");
System.out.println(a1.equals(a2));
System.out.println(a1 == a2);
System.out.println(a1.equals(a3));
System.out.println(a1 == a3);
HashMap<String, String> map = new HashMap<String, String>();
map.put("가", "abcd");
map.put("나", "1234");
map.put("kor", "100");
map.put("eng", "90");
System.out.println(map);
System.out.println(map.get("가"));
System.out.println("=========");
System.out.println(a1);
System.out.println(a1.hashCode());
System.out.println(String.format("%x", a1.hashCode()));
}
}
class Addr{ // address
int no;
String name;
String addr;
public Addr(int no, String name, String addr) {
this.no = no;
this.name = name;
this.addr = addr;
}
@Override
public boolean equals(Object obj) {
return obj != null && obj instanceof Addr && no == ((Addr)obj).no && name.equals(((Addr)obj).name);
// return no == ((Addr)obj).no;
}
}
댓글