본문 바로가기
학습

ArrayList & Vector 차이점

코동이 2020. 7. 23.

개요


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를 통해 조회할 수 있습니다.

 

https://www.geeksforgeeks.org/vector-vs-arraylist-java/

 

  • 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