28. 제네릭 요약
Overview
제네릭과 컬렉션에 대한 요약
컬렉션은 요소들의 리스트나 집합을 관리하는 자료 구조로서 요소의 추가, 삭제, 검색 등의 기능을 제공한다.
주요한 컬렉션 클래스에는 Vector<E>, ArrayList<E>, HashMap<K, V>, LinkedList<E>, Stack<E> 등이 있다.
컬렉션은 JDK 1.5 버전 이후 제네릭 기법으로 만들어져 있다.
제네릭은 일반화 시킨 타입의 타입 매개 변수를 이용하여 특정 타입에 종속되지 않도록 클래스나 인터페이스, 메소드를 일반화시키는 기법이다.
- 컬렉션은 제네릭 타입에 구체적인 타입을 지정하여 사용한다.
Vector<Integer> v = new Vector<Integer>();
컬렉션의 요소로는 오직 객체들만 사용된다.
int, char, double 등의 기본 타입을 컬렉션의 요소로 삽입하려면
Wrapper
클래스를 이용하여 기본 타입을 객체로 만들어 사용하면 된다.JDK 1.5부터는 자동 박싱/언박싱이 지원되어 기본 타입을
Wrapper
클래스로 포장하지 않고 컬렉션 클래스의 요소로 삽입하고 추출할 수 있다.List<E> 인터페이스를 구현한 컬렉션의 경우
iterator()
메소드를 호출하면Iterator
객체를 리턴하며, 이 객체를 이용하여 인덱스 없이 컬렉션의요소에 대해 순차 검색이 가능하다.
Collections
클래스는 컬렉션에 대해 요소 정렬, 검색, 최대 최소값 구하기 등 다양한 유틸리티 메소드를 제공한다.제네릭을 이용하면 컴파일 시에 타입이 결정되어 불필요한 오류 를 방지하므로 안전한 프로그래밍이 가능하다.
제네릭 클래스 또는 인터페이스 선언은 타입 매개 변수를 클래스나 인터페이스 이름 다음에 추가하여 선언한다.
제네릭 타입으로 제네릭 클래스 내에서 객체와 배열을 생성할 수 없다.
- 메소드에서도 제네릭 타입 매개 변수를 이용하여 제네릭 메소드를 정의할 수 있다.