요소(element) 객체들의 저장소
-객체들의 컨테이너라고도 불리고
-요소의 개수에 따라 크기 자동 조절
-요소의 삽입, 삭제에 따른 요소의 위치 자동 이동
컬렉션은 제너릭(generics) 기법으로 구현, 컬렉션의 요소는 객체만 가능! (int, char, double 등의 기본 타입 사용 불가 - JDK 1.5부터 자동박싱/언박싱으로 기본 타입 값 객체로 자동 변환 가능)
특정 타입만 다루지 않고, 여러 종류의 타입으로 변신할 수 있도록 클래스나 메소드를 일반화시키는 기법
C++의 템플릿(template)과 동일
<E>
, <K>
, <V>
: 타입 매개 변수 (요소 타입을 일반화한 타입)Stack<E>
E
에 특정 타입으로 구체화Stack<Integer>
Stack<String>
여러 객체들을 삽입, 삭제, 검색하는 컨테이너 클래스
배열의 길이 제한 극복, 원소의 개수가 넘쳐나면 자동으로 길이 조절
Vector <Integer> v = new Vector<Integer>();
import : java.util.Vector
-<E>
에서 E 대신 요소로 사용할 특정 타입으로 구체화
벡터에 삽입 가능한 것 : 객체, NULL
v.add(Integer); //Integer 값 맨 뒤 삽입
맨 뒤에 객체 추가 => v.add(5); //5 삽입
벡터 중간에 객체 삽입 => v.add(2,100); 두번째 위치에 100 삽입
// 정수 값만 다루는 제네릭 벡터 생성
Vector<Integer> v = new Vector<Integer>();
v.add(5); // 5 삽입
v.add(4); // 4 삽입
v.add(-1); // -1 삽입
// 벡터 중간에 삽입하기
v.add(2, 100); // 4와 -1 사이에 정수 100 삽입
v.remove(idx); //idx 인덱스 내 요소 삭제
임의의 위치에 있는 객체 삭제 가능 : 객체 삭제 후 자동 자리 이동
v.get(idx);
public void printVector(Vector <Integer> v){
...
}
Vector <Integer> v;
printVector(v); //메소드 호출
매개변수에 Vector <Integer> v
작성
호출은 벡터 변수로 (v)
가변 크기 배열을 구현한 클래스
import : java.util.ArrayList
-<E>
에서 E 대신 요소로 사용할 특정 타입으로 구체화
ArrayList에 삽입 가능한 것 : 객체, NULL;
임의의 위치에 있는 객체 삭제 가능