
Vector 클래스는 본 그림에서와 같이 List를 구현한다. ArrayList와 유사하나 주요한 차이점은 모든 메서드가 동기화되어 있어 여러 스레드가 동시에 안전하게 접근할 수 있다. 이는 Vector를 멀티스레드 환경에서 안전하게 사용할 수 있도록 해준다.
다만 단일 스레드 환경에서는 불필요한 성능 저하를 초래할 수 있다. 현재는 일반적으로 동기화되지 않은 경우, ArrayList를 사용하고, 동기화가 필요한 경우 Collections.synchronizedList와 같은 유틸리티 메서드를 사용하는 것이 더 일반적이다. 또한 Vector 클래스는 컬렉션 프레임워크가 만들어지기 이전부터 존재해온 클래스로 호환성 유지를 위해 본 그림과 같이 설계를 변경하여 Collection 인터페이스의 상속계층도에 포함되어 있지만 컬렉션 프레임워크의 일부로 간주되지는 않는다.
결론적으로 현대 자바 프로그래밍에서는 Vector 대신 ArrayList 사용을 권장하므로 본 챕터는 가볍게 참고만 하고 넘어간다
| 메서드 | 기능 |
|---|---|
| Vector() | 크기가 10인 빈 벡터를 생성 |
| Vector(int initialCapacity) | 지정된 초기 용량을 가진 빈 벡터를 생성 |
| Vector(int initialCapacity, int capacityIncrement) | 지정된 초기 용량과 용량 증가량을 가진 빈 벡터를 생성 |
| Vector(Collection c) | 지정된 컬렉션의 요소를 포함하는 벡터 생성 |
| 메서드 | 기능 |
|---|---|
| boolean add(Object o) boolean addAll(Collection c) | 지정된 객체(o) 또는 Collection(c)의 객체들을 Vector에 추가. |
| void add(int index, Object element) boolean addAll(int index, Collection c) | 지정된 위치(index)에 객체(element) 또는 컬렉션(c)에 포함된 객체들을 추가 |
| void addElement(Object o) | 지정된 객체(o)를 Vector의 끝에 추가 |
| void insertElement(Object o, int index) | 지정된 객체(o)를 지정된 위치(index)에 추가 |
| 메서드 | 기능 |
|---|---|
| boolean contains(Object o) boolean containsAll(Collection c) | 지정된 객체(o) 또는 Collection(c)의 객체들이 포함되어 있는지 확인. |
| int indexOf(Object o) | 지정된 객체의 위치(index)를 반환 (List의 첫 번째 요소부터 순방향으로 탐색) |
| int lastIndexOf(Object o) | 지정된 객체의 위치(index)를 반환 (List의 마지막 요소부터 역방향으로 탐색) |
| Object firstElement() | Vector의 첫 번째 객체를 반환 |
| Object lastElement() | Vector의 마지막 객체를 반환 |
| 메서드 | 기능 |
|---|---|
| boolean remove(Object o) boolean removeAll(Collection c) | 지정된 객체(o) 또는 Collection(c)의 객체들을 삭제. |
| Object remove(int index) | 지정된 위치(index)에 있는 객체를 삭제하고 삭제한 객체를 반환 |
| boolean retainAll(Collection c) | 지정된 Collection(c)에 포함된 객체만을 남기고, 다른 객체들은 Vector에서 삭제 집합의 교집합 개념과 유사함. |
| void clear() | Vector의 모든 객체를 삭제 |
| boolean removeElement(Object o) | Vector에서 지정된 객체(o)를 제거 |
| void removeElementAt(int index) | Vector에서 지정된 위치(index)의 객체를 제거 |
| void removeAllElements() | Vector에 삽입된 모든 객체를 제거 |
| 메서드 | 기능 |
|---|---|
| Object get(int index) | 지정된 위치(index)에 있는 객체를 반환 |
| Object set(int dex, Object element) | 지정된 위치(index)에 있는 객체를 element로 변경 |
| 메서드 | 기능 |
|---|---|
| boolean equals(Object o) | 동일한 Vector인지 확인 |
| int hashCode() | Vector의 해시 코드를 반환 |
| 메서드 | 기능 |
|---|---|
| Iterator iterator() | 해당 Collection의 iterator를 얻어서 반환 |
| ListIterator listIterator() ListIterator listIterator(int index) | 해당 List의 객체에 접근할 수 있는 ListIterator를 얻어서 반환 |
| 메서드 | 기능 |
|---|---|
| boolean isEmpty() | Vector가 비어있는지 확인 |
| int capacity() | Vector의 현재 용량을 반환 |
| void ensureCapacity(int minCapacity) | Vector의 용량을 최소 지정된 크기로 증가 |
| int size() | Vector에 저장된 객체의 개수를 반환 |
| void sort(Comparator c) | 지정된 비교자(comparator)로 Vector를 정렬 |
| void trimToSize() | Vector의 용량을 현재 크기로 축소 |
| 메서드 | 기능 |
|---|---|
| Object[] toArray() | Vector에 저장된 객체를 객체배열(Object[])로 반환 |
| Object[] toArray(Object[] a) | 지정된 배열에 Vector의 객체를 저장해서 반환 |
| List subList(int fromIndex, int toIndex) | 지정된 범위(fromIndex부터 toIndex)에 있는 객체를 반환 |
자바의 정석 3판 (저자 : 남궁성)
Java Collections Framework Video Tutorial
오라클 Java 문서