본문 바로가기

IT/자바프로그래밍

(4회차)자바프로그래밍 - 제네릭과 컬렉션 기본 정의

 컬렉션

1. 객체들의 저장소 , 객체들의 컨테이너라고 불린다.

2. 그 요소의 개수에 따라 크기가 자동 조절되며 삽입,삭제에 따라서 위치가 이동된다.

3. 고정 크기인 배열을 다루는 어려움을 해소한다.

4. 다양한 객체들을 삽입.삭제 검색 및 관리하는데 용이하다.

 

컬렉션을 위한 자바의 인터페이스 . 클래스

 Collection<E> 

인터페이스 : Set<E> List<E> Queue<E>

---------------------------------------------

클래스 : HashSet<E> ArrayList<E> Vector<E> LinkedList<E> Hash

인터페이스 클래스
Set<E> HashSet<E>
List<E> ArrayList<E>.Vector<E>+Stack<E>.LinkedList<E> 
Queue<E> LinkedList<E>
Map<K,V> HashMap<K,V>

컬렉션은 제네릭 기법으로 구현됨

컬렉션의 요소는 객체만 가능하다 ( Integer . Charactor )

 

 제네릭

1. 특정 타입만 다루지 않고 . 여러 종류의 타입도 사용할 수 있게 클래스나 메소드를 일반화시키는 법

2. 모든 종류의 데이터 타입을 다룰 수 있도록 일반화된 타입 매개 변수로 클래스나 매소드를 작성하는 기법

 

제네릭 클래스 사례

제네릭 스택 : Stact<E> [ E에 특정 타입으로 구체화시킨다.]

 

정수만 다루는 스택 : Stack<Integer>

문자열만 다루는 스택 : Stack<String>

 

 

Vector<E> 

1.  java.util.Vector : <E>에서 E 대신 요소로 사용할 특정 타입으로 구체화

2. 여러 객체들을 삽입 삭제 검색 하는 컨테이너 클래스 ( 배열의 길이 제한 X . 원소의 개수가 많으면 자동조절 )

3. Vector에 삽입 가능한 것 ( 객체, null / 기본 타입 Wrapper 객체로 만들어 저장 )

4. Vector에 객체 삽입 ( 벡터의 맨 뒤에 중간에 객체 추가 )

5. Vector에 객체 삭제 ( 임의의 위치에 있는 객체 삭제 가능하고 삭제 후 자동 자리 이동 )

 

 Vector<Integer> 컬렉션 내부 구성 

Vector<Integer> v = new Vector<Integer>(); 이렇게 타입 매개 변수를 사용하여야 합니다

 

JDK 1.5 부터 자동 박싱/언박싱이 작동되서 기본 타입 값을 사용 할 수 있습니다.

ex)

Vector<Integer> v = new Vector<Integer> ();

v.add(4); // 4 -> Integer.valueOf(4) 로 자동 박싱해준다.