Java - HashSet

춤추는개발자·2022년 12월 3일
0

Java 정리

목록 보기
50/59

HashSet

  • 순서가 없고, 값의 중복이 없다.
  • Set 인터페이스를 구현한 대표적인 컬렉션 클래스
  • 순서를 유지하고 싶다면 LinkedHashSet 클래스를 사용하면 된다.
  • TreeSet은 범위 검색과 정렬에 유리한 컬렉션 클래스이다.
  • TreeSet은 데이터가 많을수록 데이터 추가, 삭제에 시간이 더 걸린다.
  • HashSet은 객체를 저장하기전에 기존에 같은 객체가 있는지 확인한다.
  • 확인 후 같은 객체가 없으면 저장하고, 있으면 저장하지 않습니다.
  • boolean add(Object o)는 저장할 객체의 equals()와 hashCode()를 호출해서 중복된 객체인지 아닌지 확인한다.
  • 만약 작성한 클래스를 HashSet에 저장하고 싶으면 작성한 클래스에 equals()와 hasCode()가 오버라이딩 되어 있어야 정상적으로 작동한다. 아니면 같은 객체가 모두 저장된다. hashCode() 오버라이딩 할때 retrun에 Objects.hash(인스턴스변수)를 넣어주면 자동으로 hashcode를 만들어 반환 해준다.

0개의 댓글