* 컬렉션(Collection)은 배열이 가진 고정 크기의 단점을 극복하기 위해 객체들을 쉽게 삽입, 삭제, 검색할 수 있는 가변 크기의 컨테이너(container)이다. 즉, 요소(element) 객체들의 저장소
배열과의 차이 )
1. 요소의 개수에 따라 크기 자동 조절
2. 요소의 삽입, 삭제에 따른 요소의 위치 자동 이동
장점 )
1. 고정 크기의 배열을 다루는 어려움 해소
2. 다양한 객체들의 삽입, 삭제, 검색 등의 관리 용이
특징)
1. 컬렉션은 제네릭(Generic)이라는 기법으로 만들어져 있다. 컬렉션 클래스의 이름에는 '타입 매개 변수'인 <E>, <K>, <V> 등이 항상 포함된다. Vector<Integer> 혹은 Vector<String>과 깉이 구체적인 타입을 지정하면 해당 자료형만 저장하는 벡터로 사용할 수 있다. 하지만 특정 타입만 다루지 않고 여러 종류의 타입으로 변신할 수 있도록, 컬렉션을 일반화 시키기 위해 <E>와 같이 타입 매개변수를 사용한다.
2. 컬렉션의 요소는 객체들만 가능하다.
Vector<int> v = new Vector<int>(); // 컴파일 오류. int는 사용 불가
Vector<Integer> v = new Vector<Integer>(); // 정상코드
하지만, 기본 타입의 값이 삽입되면 자동 박싱(auto boxing)에 의해 Wrapper 클래스 타입으로 변환되어 객체로 저장된다.
* 자바의 제네릭은 클래스 코드를 찍어내듯이 생산할 수 있도록 일반화(generic)시키는 도구이다.
즉, 특정 타입만 다루지 않고, 여러 종류의 타입으로 변신할 수 있도록 클래스나 메소드를 일반화시키는 기법
* 컬렉션 클래스에서 타입 매개변수로 사용하는 문자는 다른 변수와 혼동을 피하기 위해 일반적으로 하나의 대문자를 사용한다.
관용적인 문자 )
E: Element
T: Type
V: Value
K: Key