TIL(Today I Learned)

Vector vs ArrayList

keepgoing 2022. 10. 3. 21:29

Vector 특징?

List 인터페이스를 구현한 클래스

객체들을 삽입, 삭제, 검색할 수 있다.

배열의 길이 제한 단점을 극복

아이템을 맨 마지막이나 중간에 삽입 가능

add()로 요소 추가

get()으로 요소 검색

다양한 타입의 객체 삽입 가능(Integer, String, ..)

요소들은 인덱스로 관리

스레드 안전(Thread Safe)

객체들이 많아지면 크기 자동 증가(100% 증가)

동기화, 한번에 하나의 스레드만 작업

단일스레드일 경우 비효율적

 

ArrayList 특징?

Vector의 기능과 거의 모든게 동일 단, ArrayList는 동시에 여러 스레드를 작업 가능

Vector보다 속도가 빠름(20~30%)

멀티스레드로 구현할 시 개발자가 명시적으로 동기화 코드를 추가해야함

 

Vector vs ArrayList?

ArrayList의 승리입니다. 단일스레드 환경에서는 ArrayList를 사용하는 것을 권장합니다.

(단, 멀티스레드에서는 Vector 사용을 할 수도 있습니다.)