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를 권장하고 있다.