Set, List 차이와 hashcode

박철현·2023년 4월 19일

개념정리

목록 보기
1/5
  • HashCode : Set에서 특정 객체와 중복되는지 검사할 때 사용

  • equals : Set에서 특정 객체와 중복되는지 검사할 때 쓰이지 않는다.
    -> 단 해시충돌이 일어나는 경우 사용됨

  • List와 Set 비교

    • List : 중복 가능하고 순서 존재-> index로 구분
    • Set : 중복 불가(풀스캔이 아닌 이진탐색으로 중복 여부 검사), 객체가 저장된 순서 기억x
      -> add할 때마다 HashCode 함수 실행(hashcode 리턴)
      -> hashcode값이 겹치는 엘리먼트가 이미 있다면, 추가적 검증(Equals)를 해보고 겹치면 등록 불가
  • Hash충돌 : 비교하려는 객체의 값이 달라도 비율이 맞으면 hashcode가 같아 동일 객체로 인식하는 문제
    -> equals 메소드를 구현해두면 해시충돌이 날 시, equals 메서드를 사용하여 객체의 동등한지 비교 하여 구분

예제는 강사님 자료이므로 올리지 않음.

profile
비슷한 어려움을 겪는 누군가에게 도움이 되길

0개의 댓글