의문점 공부하기/📌 Java

📌 ArrayList와 Vector의 차이점은!?

아리빠 2023. 6. 30. 16:05

스레드 안전성: 

Vector: 스레드 안전(thread-safe)한 클래스로 구현되어 있다.

=>Vector가 여러 스레드에서 동시에 접근되더라도 안전하게 작동 

 

ArrayList: 스레드 안전하지 않은 클래스로 구현되어 있다.

=> ArrayList는 단일 스레드 환경에서 사용하는 것이 가장 좋다.


성능: 

Vector는 스레드 안전성을 유지하기 위해 동기화(synchronization)를 사용.

=> 여러 스레드에서 Vector에 접근할 때 성능이 저하될 수 있다. 

 

ArrayList는 스레드 안전성을 고려하지 않기 때문에 동기화 오버헤드가 없으므로 일반적으로 더 빠르다


용량 증가: 

ArrayList는 요소가 추가될 때 내부 배열의 크기를 동적으로 증가 시킨다 , 기본적으로 현재 크기의 50%씩 증가

 

Vector는 내부 배열의 크기를 현재 크기의 100%씩 증가시킨다.

 

=>Vector는 ArrayList보다 메모리를 더 많이 사용할 수 있다.