의문점 공부하기/📌 Java
📌 ArrayList와 Vector의 차이점은!?
아리빠
2023. 6. 30. 16:05
스레드 안전성:
Vector: 스레드 안전(thread-safe)한 클래스로 구현되어 있다.
=>Vector가 여러 스레드에서 동시에 접근되더라도 안전하게 작동
ArrayList: 스레드 안전하지 않은 클래스로 구현되어 있다.
=> ArrayList는 단일 스레드 환경에서 사용하는 것이 가장 좋다.
성능:
Vector는 스레드 안전성을 유지하기 위해 동기화(synchronization)를 사용.
=> 여러 스레드에서 Vector에 접근할 때 성능이 저하될 수 있다.
ArrayList는 스레드 안전성을 고려하지 않기 때문에 동기화 오버헤드가 없으므로 일반적으로 더 빠르다
용량 증가:
ArrayList는 요소가 추가될 때 내부 배열의 크기를 동적으로 증가 시킨다 , 기본적으로 현재 크기의 50%씩 증가
Vector는 내부 배열의 크기를 현재 크기의 100%씩 증가시킨다.
=>Vector는 ArrayList보다 메모리를 더 많이 사용할 수 있다.