Today's special moments become memories of tomorrow.

JAVA

[java] ArrayList, LinkedList, Vector

lotus lee 2021. 4. 1. 20:51

ArrayList, LinkedList, Vector 모두 java.util 패키지에 존재하는 List 인터페이스를 구현한 클래스이다.

 

 

ArrayList

ArrayList는 List를 배열로 구현한 것이다. 따라서 인덱스를 통해 요소에 접근한다는 점에서 배열과 유사하다. 하지만 배열은 그 크기가 고정되어 있는데 반해 ArrayList는 크기를 동적으로 변경이 가능하다. add() 메서드를 통해 요소를 새로 추가할 수 있다.

 

Vector

Vector도 List를 배열로 구현한 것이다. 배열과 달리 동적으로 크기를 변경할 수 있다는 점에서 ArrayList와 유사하다. ArrayList와 마찬가지로 add() 메서드를 통해 새로운 요소를 추가할 수 있다. ArrayList는 멀티 스레드 환경에서 동기화를 지원하지 않지만, Vector는 동기화를 지원한다. 

 

LinkedList

LinkedList는 ArrayList, Vector와 달리 각 요소를 연결 리스트를 이용하여 연결한다. ArrayList와 Vector는 가변 크기의 배열이기 때문에 중간에 요소를 삽입하거나 삭제할 때 성능이 떨어진다. 하지만 LinkedList는 연결 리스트이므로 중간에 요소의 삽입, 삭제가 쉽다. 반면, 요소에 접근할 때는, 인덱스를 가지고 요소에 접근하는 ArrayList, Vector에 비해서 시간이 걸린다는 단점이 있다.

'JAVA' 카테고리의 다른 글

[java] 스레드(thread)  (0) 2021.04.15
[java] HashMap, TreeMap, LinkedHashMap  (0) 2021.04.14
[java] 예외 처리  (0) 2021.04.03
[java] String, StringBuffer, StringBuilder  (0) 2021.04.02