개요
ArrayList와 Vector는 배열을 이용해 구현되어 있습니다. 공통점과 차이점을 알아보겠습니다.
공통점
- 내부가 배열로 구현되어 있으며 동적으로 사이즈가 늘어난다.
- 사용하는 메소드가 똑같다.(add, remove, get 등등)
Vector의 특징
- 초기 JDK의 첫번째 버전으로서 java.util.Vector에 속해 있습니다. 1.2버전부터 vector는 List를 구현하고 컬렉션 프레임워크에 포함됩니다.
- Vector의 모든 메소드는 동기화되어있습다.(syncrhonized)
- 사이즈 변경시 현재의 2배로 늘어납니다.
- Iterator 뿐만 아니라 Enumeration을 통해서도 조회할 수 있습니다.
ArrayList의 특징
- 자바 1.2버젼에서 등장하였고 java.util.ArrayList로 컬렉션 프레임워크에 포함됩니다.
- ArrayList의 모든 메소드는 비동기화입니다.(unsynchronized)
- 사이즈 확장 시 현재의 1.5배 크기로 늘어납니다.
- Iterator를 통해 조회할 수 있습니다.
- Vector와 ArrayList 중 어느것을 사용해야 할 것인가?
동기화가 꼭 필요하지 않다면 ArrayList를 사용합니다. 평균적으로 Vector를 사용하는 것이 ArrayList를 사용하는 것보다 더 많은 비용이 소요됩니다. 혹시 동기화가 필요하지 않을 시 , 그냥 배열을 이용하는 것도 괜찮은 선택입니다다. 하지만 추가 삭제 조회 등이 구현되어 있는 메소드가 없으므로 복잡 할 수 있습니다.
주의점
Vector나 ArrayList를 만들 때, 초기 사이즈를 충분히 크게 잡아야 합니다. 사이즈를 증가시키는 것은 많은 비용이 따르기 떄문입니다.
출처
https://javapapers.com/core-java/java-collection/difference-between-vector-and-arraylist-in-java/
'학습' 카테고리의 다른 글
Iterator & Enumeration & ListIterator (0) | 2020.07.23 |
---|---|
Fail-Fast vs Fail-Safe (0) | 2020.07.23 |
Compile vs Interpretation (0) | 2020.07.23 |
다형성 / Up-casting & Down-casting (0) | 2020.07.20 |
Wrapper class / Integer cache pool (0) | 2020.07.17 |