들어가기 전에
해시를 구현하는 생성자에 대해 살펴보도록 하겠습니다.
학습 목표
해시의 생성자를 이해하고 구현할 수 있습니다.
핵심 단어
- 해시
- 생성자
강의 듣기
들어가기 전에
해시를 구현하는 생성자에 대해 살펴보도록 하겠습니다.
학습 목표
해시의 생성자를 이해하고 구현할 수 있습니다.
핵심 단어
강의 듣기
생성자
해시를 구현하는 생성자를 만드는 과정에 대한 복습입니다.
public class Hash<K, V> implements HashI<K, V> {
LinkedList<HashElement<K, V>>[] harray;
// 해시 구현
public Hash (int tableSize){
this tableSize = tableSize;
harray = (LinkedList<HashElement<K, V>>[]) new LinkedList[tableSize]; // 형 변환
// 연결 리스트 체이닝
for (int i=0; i<tableSize; i++)
harray[i] = new LinkedList<HashElement<K, V>>();
maxLoadFactor = 0.75;
numElements=0;
}
}
생각해보기
1) 형 변환 과정이 필요한 이유는 무엇인가요?
comment
타입소거로 인해 자바에서 제네릭으로 배열을 만들지 못함. 자바의 배열에는 타입을 지정해줘야함.
타입 소거란 컴파일 시 검사를 하고 런타임에는 검사를 하지 않는다.
컴파일 타임에만 타입에 대한 제약 조건을 적용하고, 런타임에는 타입에 대한 정보를 소거하는 프로세스이다.
제네릭 타입을 사용하기 위해서입니다. LinkedList는 HashElement를, HashElement는 K, V라는 제네릭 타입을 필요로 합니다.