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 |