컬렉션 프레임워크 (Collection Framework) - 2.2. Vector

CJI0524·2024년 7월 10일

Java/Collection Framework

목록 보기
4/26

1. Vector 클래스

Vector 클래스는 본 그림에서와 같이 List를 구현한다. ArrayList와 유사하나 주요한 차이점은 모든 메서드가 동기화되어 있어 여러 스레드가 동시에 안전하게 접근할 수 있다. 이는 Vector를 멀티스레드 환경에서 안전하게 사용할 수 있도록 해준다.

다만 단일 스레드 환경에서는 불필요한 성능 저하를 초래할 수 있다. 현재는 일반적으로 동기화되지 않은 경우, ArrayList를 사용하고, 동기화가 필요한 경우 Collections.synchronizedList와 같은 유틸리티 메서드를 사용하는 것이 더 일반적이다. 또한 Vector 클래스는 컬렉션 프레임워크가 만들어지기 이전부터 존재해온 클래스로 호환성 유지를 위해 본 그림과 같이 설계를 변경하여 Collection 인터페이스의 상속계층도에 포함되어 있지만 컬렉션 프레임워크의 일부로 간주되지는 않는다.

결론적으로 현대 자바 프로그래밍에서는 Vector 대신 ArrayList 사용을 권장하므로 본 챕터는 가볍게 참고만 하고 넘어간다

2. Vector 클래스에 정의된 메서드 목록

2.1. 생성자

메서드기능
Vector()크기가 10인 빈 벡터를 생성
Vector(int initialCapacity)지정된 초기 용량을 가진 빈 벡터를 생성
Vector(int initialCapacity, int capacityIncrement)지정된 초기 용량과 용량 증가량을 가진 빈 벡터를 생성
Vector(Collection c)지정된 컬렉션의 요소를 포함하는 벡터 생성

2.2. 삽입 / 탐색 / 삭제 메서드

삽입

메서드기능
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에 삽입된 모든 객체를 제거

Get / Set

메서드기능
Object get(int index)지정된 위치(index)에 있는 객체를 반환
Object set(int dex, Object element)지정된 위치(index)에 있는 객체를 element로 변경

2.3. 추가 핵심 기능

Object 메서드

메서드기능
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의 용량을 현재 크기로 축소

2.3. 기타

메서드기능
Object[] toArray()Vector에 저장된 객체를 객체배열(Object[])로 반환
Object[] toArray(Object[] a)지정된 배열에 Vector의 객체를 저장해서 반환
List subList(int fromIndex, int toIndex)지정된 범위(fromIndex부터 toIndex)에 있는 객체를 반환

3. 해당 게시글 작성에 참고한 글 목록

자바의 정석 3판 (저자 : 남궁성)
Java Collections Framework Video Tutorial
오라클 Java 문서

profile
개발돌이

0개의 댓글