JAVA

Vector<E>

인생개발 이정환 2024. 8. 2. 19:32
 

Vector<E>는 Java에서 제공하는 동적 배열을 구현한 클래스입니다. 이는 자바의 컬렉션 프레임워크의 일부로, 여러 가지 데이터를 저장하고 관리하기 위한 다양한 메서드를 제공합니다. Vector는 제네릭 클래스이므로, 다양한 타입의 데이터를 저장할 수 있습니다. 여기서 <E>는 저장할 요소의 타입을 지정하는 제네릭 타입 매개변수입니다.

Vector의 주요 특징

  1. 동기화(Synchronization):
    • Vector는 스레드에 안전한(Synchronized) 컬렉션 클래스입니다. 이는 다중 스레드 환경에서 안전하게 사용할 수 있다는 의미로, 내부적으로 메서드들이 동기화되어 있습니다.
    • 그러나 이로 인해 단일 스레드 환경에서는 불필요한 동기화로 성능이 저하될 수 있습니다.
  2. 동적 배열:
    • Vector는 동적 배열로, 필요에 따라 자동으로 크기가 조정됩니다.
    • 요소가 추가되면 용량이 부족할 경우 자동으로 크기를 늘려줍니다.
  3. 제네릭(Generic):
    • 제네릭을 지원하여 타입 안전성을 제공합니다. 이는 컴파일 시 타입을 체크할 수 있어 런타임 에러를 줄이는 데 도움이 됩니다.
  4. 초기 용량 및 증가 용량:
    • 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) {
    // 각 요소에 대해 작업 수행
}