HashCode

Posted 2015. 4. 10. 15:54

package chap9;

// 해쉬코드란 객체를 구별하는 고유의 값( 주소값 )
// 두 객체의 해쉬코드값이 다른 경우는 두 객체는 서로 다른 객체다.
// hashCode() 메서드는 내용이 같으면 같은값이 나오도록
// 오버라이딩이 가능 하다.
// -> Collection에서 다시 설명

// 객체의 내용이 같은지를 판단하는 기준이 되는 메서드는
// equals() 메서드와 hashCode() 메서드를 사용 한다.

public class HashCodeEx1 {
 public static void main(String[] args) {
  String str1 = new String("abc");
  String str2 = new String("abc");
  
  // 스트링은 오버라이딩이 되어있다. 같은 hashCode값이 나온다.
  System.out.println(str1.hashCode());
  System.out.println(str2.hashCode());
  
  if( str1 == str2 ) System.out.println("두 문자열은 같다");
  else System.out.println("두 문자열은 다르다");
  
  // 원래의 해쉬코드값을 구하기 위해서는( 오버라이딩 하지않은 원래의 해쉬값 )
  System.out.println(System.identityHashCode(str1));
  System.out.println(System.identityHashCode(str2));
  System.out.println();
  
  
  Value2 v1 = new Value2(10);
  Value2 v2 = new Value2(10);
  System.out.println(v1.hashCode());
  System.out.println(v2.hashCode());
  System.out.println(System.identityHashCode(v1));
  System.out.println(System.identityHashCode(v2));
 }
}

'Java !!!' 카테고리의 다른 글

WrapperClass  (0) 2015.04.10
String  (0) 2015.04.10
Equals_Ex2  (0) 2015.04.10
Equals  (0) 2015.04.10
StringBuffer_Ex2  (0) 2015.04.10