본문 바로가기

자바공부

명품 자바 프로그래밍 7장 요약

728x90
반응형

* 컬렉션은 요소들의 리스트나 집합을 관리하는 자료 구조로서 크기를 자동 조절하여 크기에 구애받지 않고 요소의 추가, 삭제, 검색 등을 쉽게 할 수 있어 배열보다 용이하다.

 

* 주요한 컬렉션 클래스에는 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 클래스는 컬렉션에 대해 요소 정렬, 검색, 최대 최솟값 구하기 등 다양한 유틸리티 메소드를 제공한다.

 

* 제네릭을 이용하면 컴파일 시에 타입이 결정되어 불필요한 오류를 방지하므로 안전한 프로그래밍이 가능하다.

 

* 제네릭 클래스 또는 인터페이스 선언은 타입 매개변수를 클래스나 인터페이스 이름 다음에 추가하여 선언한다.

 

* 제네릭 타입으로 제네릭 클래스 내에서 객체와 배열을 생성할 수 없다.

반응형