제네릭이란?
클래스나 메소드 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 말한다.
컬렉션이란?
배열은 삽입 삭제가 불편하고, 고정 길이라는 특성 때문에 데이터의 크기를 예측하기 힘든 경우에는 사용이 어렵다.
이런 단점을 극복하기 위해 사용하는 것이 가변 길이의 컨테이너인 컬렉션이다.
List, Set 등이 있다.
컬렉션에서 제네릭을 사용하는 이유?
제네릭을 사용하면 내부에서 타입을 특정하지 않는다.
이렇게 되면 특정 타입만 다루지 않고, 여러 종류의 타입으로 사용이 가능하다.
그래서 제네릭을 사용하는 것을 타입을 '일반화'한다고 한다.
객체에 타입을 붙여 저장하기 때문에 꺼낼 때 형변환을 따로 하지 않아도 된다.
배열은 런타임 시에 원소의 타입 검사가 이루어진다.
하지만 제네릭의 경우에는 컴파일 시에 타입을 검사하므로 예외가 발생했을 때 빠르게 확인할 수 있다.