[Collection4] : Vector

이수보🧑🏻‍💻·2022년 2월 2일
1

초급

목록 보기
24/25
post-thumbnail

Vector

오늘의 Collection은 Vector(벡터) 입니다.
Vector는 원래 Collection이 아니었습니다. 음... 무슨 말이냐고요??

Vector는 Collection Framework가 탄생한 자바Version 1.2 이전인 자바Version 1.0 부터 존재했었습니다.
1.2버전 이후 Java.util 패키지에 Collection 인터페이스가 추가되며 List인터페이스를 상속받은 Collection클래스가 됩니다.
때문에 기존 Vector와의 호환성을 이유로 자체 메서드를 가지고 있습니다.


Vector란?

Vector는 ArrayList와 동일한 내부구조를 가집니다. 따라서 ArrayList와 마찬가지로 Vector내부에 값이 추가되면 자동으로 크기를 조정하며 뒤 객체는 한 자리씩 뒤로 이동합니다.

즉, 자료구조에 있어서 ArrayList와 다른 차이점은 존재하지 않습니다.


Vector를 왜 쓰나?

그렇다면 이 Vector를 왜 쓰냐? Vector는 ArrayList와 다르게 Vector는 내부적으로 동기화 되어 있기 때문에 멀티 쓰레드 환경에서 안전합니다.
자체적으로 동기화 되어 있기 때문에 쓰레드 이외에 환경에서는 ArrayList보다 낮은 성능을 보이지만 멀티 쓰레드 환경에서 순서를 정확히 지켜야 할 때 사용합니다.

즉, 멀티 쓰레드 실행시에 한 개의 결과가 완벽하게 도출된 후에 실행이 되도록 할 때 유용합니다.


Vector 예제

1.선언
Vector vector = new Vector();   -> 기본 Object타입
Vector<String> vector = new Vector<>();  -> String 타입 지정
Vector<Integer> vector = new Vector<>();  -> int 타입 지정
vector vector = enw Vector(10);  -> 기본 크기 10으로 지정

2.값 추가
vector.add(15);  -> 5 추가  
vector.add(null);  -> null 추가
vector.add(0, 5);  -> 0인덱스에 5 추가

3. 값 삭제
vector.remove(0)  -> 0인덱스 삭제
vector.removeAllElements();  -> 모든 값 제거
vector.clear();  ->  모든 값 제거

4. 크기 구하기
vector.size();  -> 현재 자료의 개수
vector.capacity();  ->  선언 시 지정한 크기

5. 값 출력
vector.get(0);  -> 인덱스 0의 자료 가져오기;

0개의 댓글