* 컬렉션은 요소들의 리스트나 집합을 관리하는 자료 구조로서 크기를 자동 조절하여 크기에 구애받지 않고 요소의 추가, 삭제, 검색 등을 쉽게 할 수 있어 배열보다 용이하다.
* 주요한 컬렉션 클래스에는 Vector<E>, ArrayList<E>, HashMap<K, V>, LinkedList<E>, Stack<E> 등이 있다.
* Vector나 ArrayList 등은 요소 객체들이 리스트 형식으로 순차적으로 저장되며, 인덱스로 검색할 수 있어 배열을 대신할 때 매우 효과적이다.
* HashMap 컬렉션에는 '키'와 '값'의 쌍으로 저장되고, '키'를 이용하여 요소가 검색된다. 삽입, 삭제, 검색 속도가 매우 빠른 장점이 있고, 요소의 순서가 필요 없고 '키'를 이용하여 삽입하고 검색하는 응용에 매우 적합하다.
* 컬렉션은 JDK 1.5 버전 이후 제네릭 기법으로 만들어져 있다.
* 제네릭은 일반화시킨 타입을 사용하여 특정 타입에 종속되지 않도록 클래스나 인터페이스, 메소드를 일반화시키는 기법이다. 그러므로 제네릭에 구체적인 타입을 지정하여 특정 타입으로 변신하여 사용할 수 있다.
* 컬렉션은 다음과 같이 구체적인 타입을 지정하여 사용한다.
Vector<Integer> v = new Vector<Integer>();
* 컬렉션의 요소로는 객체들만 사용된다.
* int, char, double 등의 기본 타입을 컬렉션의 요소로 삽입하려면 Wrapper 클래스를 이용하여 기본 타입을 객체로 만들어 사용하면 된다.
* JDK 1.5 부터는 자동 박싱 기능에 의해 기본 타입의 값이 컬렉션에 삽입될 때 자동으로 Wrapper 클래스로 포장되어 삽입되고, 추출될 때 자동 언박싱 기능에 의해 기본 타입의 값으로 자동 변환된다.
* Collection<E> 인터페이스를 구현한 컬렉션의 경우 iterator() 메소드를 호출하면 Iterator 객체를 리턴하며, 이 객체를 이용하여 인덱스 없이 컬렉션의 쇼로에 대해 순차 검색이 가능하다.
* Collections 클래스는 컬렉션에 대해 요소 정렬, 검색, 최대 최솟값 구하기 등 다양한 유틸리티 메소드를 제공한다.
* 제네릭을 이용하면 컴파일 시에 타입이 결정되어 불필요한 오류를 방지하므로 안전한 프로그래밍이 가능하다.
* 제네릭 클래스 또는 인터페이스 선언은 타입 매개변수를 클래스나 인터페이스 이름 다음에 추가하여 선언한다.
* 제네릭 타입으로 제네릭 클래스 내에서 객체와 배열을 생성할 수 없다.
'IT > 자바공부' 카테고리의 다른 글
ArrayList<E>, 자바 명품 프로그래밍 7장 (0) | 2022.06.10 |
---|---|
컬랙션 매개변수 메소드 만들기, 명품 자바 프로그래밍 7장 (0) | 2022.06.10 |
명품 자바 프로그래밍 6장 요약 (0) | 2022.05.31 |
자바 Calendar 클래스 개념 공부 (0) | 2022.05.31 |
자바 StringTokenizer 클래스 개념 공부 (0) | 2022.05.31 |