BE/자료구조

[JAVA] Vector vs ArrayList

E@st 2022. 4. 30. 00:24
  Vector ArrayList
동기화 O X
용량증가분 요소가 용량을 초과하면 현재 배열크기의 50%증가 요소가 용량을 초과하면 현재 배열크기의 100%증가
도입 JDK1.0 JDK1.2
속도 동기화가 되어 있기 때문에 느립니다. 동기화되지 않기 때문에 빠릅니다.

- 차이점

- 우선 이 글을 보면 ArrayList에는 용량 증가분을 조절할 수 있는 파라미터를 받는 생성자는 존재하지 않지만 Vector의 생성자에는 초기 용량과 용량 증가분을 설정할 수 있는 생성자가 존재한다.

- ArrayList는 동기화되지 않기 때문에 Vector보다는 성능이 빠르다. 또한 ArrayList는 데이터수가 용량을 초과하는 경우 현재 배열의 50%를 추가로 늘려주는 반면 Vector는 100%를 추가로 늘려줘 메모리를 과하게 차지할 수도 있다. 자바의 공식문서에서도 멀티스레드에 노출되지 않다면 ArrayList를 권장하고 있다.