제네릭 HashMySet은 타입 경계 안에서 확장·재해시한다

add(E)는 잘못된 타입을 입구에서 막고 load factor 임계점에서 모든 원소를 새 bucket으로 옮깁니다.

  1. 1

    add(E)

    컴파일 타입 검사

  2. 2

    중복 확인

    hash + equals

  3. 3

    임계점

    required > threshold

  4. 4

    capacity 확대

    bucket 배열 교체

  5. 5

    rehash

    새 index로 모두 이동

핵심: 재해시는 기존 index를 복사하지 않고 새 capacity로 다시 계산해야 합니다.