JAVA

equals()와 hashCode() 함수 차이

JUN0126 2021. 7. 3. 00:38

equals() 메서드란?

 - 두 객체의 내용이 같은지 확인하는 메서드

 

hashCode() 메서드란?

 - 두 객체가 같은 객체인지 메모리 주소로 확인하는 메서드

 

 @Test
    void isEqual() {
     Car newCar = new Car("lee",28);
     Car oldCar = new Car("lee",28);
    
     boolean result = newCar.equals(oldCar);
     assertThat(result).isFalse();
    }

 

 @Test
    void isHashCode() {
     Car newCar = new Car("lee",28);
     Car oldCar = new Car("lee",28);
     Map<Car,Integer> car = new HashMap<Car,Integer>();
     car.put(newCar, 1);
     car.put(oldCar, 1);
    
     int number = car.size();


    // Hash를 사용한 Collection은 key를 결정할 떄 hashCode()를 사용하여 값이 2로 출력 
     assertThat(number).isEqualTo(2);


    }

 

 

 

 

'JAVA' 카테고리의 다른 글

컬렉션 프레임워크  (0) 2021.07.10
프로세스와 쓰레드  (0) 2021.07.09
상속  (0) 2021.07.07
예외(Exception) 처리  (2) 2021.06.30
Java 컴파일 과정 및 메모리 구조  (0) 2021.03.21