Vector<E>는 Java에서 제공하는 동적 배열을 구현한 클래스입니다. 이는 자바의 컬렉션 프레임워크의 일부로, 여러 가지 데이터를 저장하고 관리하기 위한 다양한 메서드를 제공합니다. Vector는 제네릭 클래스이므로, 다양한 타입의 데이터를 저장할 수 있습니다. 여기서 <E>는 저장할 요소의 타입을 지정하는 제네릭 타입 매개변수입니다.
Vector의 주요 특징
- 동기화(Synchronization):
- Vector는 스레드에 안전한(Synchronized) 컬렉션 클래스입니다. 이는 다중 스레드 환경에서 안전하게 사용할 수 있다는 의미로, 내부적으로 메서드들이 동기화되어 있습니다.
- 그러나 이로 인해 단일 스레드 환경에서는 불필요한 동기화로 성능이 저하될 수 있습니다.
- 동적 배열:
- Vector는 동적 배열로, 필요에 따라 자동으로 크기가 조정됩니다.
- 요소가 추가되면 용량이 부족할 경우 자동으로 크기를 늘려줍니다.
- 제네릭(Generic):
- 제네릭을 지원하여 타입 안전성을 제공합니다. 이는 컴파일 시 타입을 체크할 수 있어 런타임 에러를 줄이는 데 도움이 됩니다.
- 초기 용량 및 증가 용량:
- Vector는 초기 용량(initial capacity)과 증가 용량(capacity increment)을 설정할 수 있습니다.
- 초기 용량은 Vector가 처음 생성될 때의 크기이고, 증가 용량은 배열이 가득 찼을 때 확장되는 크기입니다. 만약 증가 용량이 지정되지 않았다면, 용량은 자동으로 두 배로 늘어납니다.
Vector의 주요 메서드
다양한 메서드를 제공하여 요소의 추가, 삭제, 검색 등을 수행할 수 있습니다.
// 기본 생성자: 초기 용량 10
Vector<E> vector = new Vector<>();
// 초기 용량 지정
Vector<E> vectorWithCapacity = new Vector<>(initialCapacity);
// 초기 용량 및 증가 용량 지정
Vector<E> vectorWithIncrement = new Vector<>(initialCapacity, capacityIncrement);
vector.add(element); // 요소 추가
vector.add(index, element); // 지정된 위치에 요소 추가
vector.remove(index); // 지정된 위치의 요소 제거
vector.remove(element); // 특정 요소 제거
E element = vector.get(index); // 지정된 위치의 요소 가져오기
int size = vector.size(); // 현재 요소의 개수
int capacity = vector.capacity(); // 현재 용량
for (E element : vector) {
// 각 요소에 대해 작업 수행
}
'JAVA' 카테고리의 다른 글
스택과 힙을 나누는 이유 (0) | 2024.08.03 |
---|---|
Java에서 exe파일로 변환하는 링크과정이 필요없는 이유 (0) | 2024.08.03 |
제네릭 vs 리플렉션 (0) | 2024.08.02 |