티스토리 뷰

면접 질문

Vector, ArrayList, LinkedList

kkoon9 2020. 10. 6. 13:06

더 깔끔한 노션을 원한다면

 

Vector, ArrayList, LinkedList

Collection 인터페이스를 확장한 자료형

www.notion.so

Collection 인터페이스를 확장한 자료형

ArrayList와 Vector는 AbstractList, LinkedList는 AbstractSequentialList을 확장한 자료형이다.

동기화 부분

Vector가 동기화가 된다면 ArrayList는 동기화가 되지 않는다.

Vector는 한번에 하나의 스레드만 접근 가능하며, ArrayList는 동시에 여 러 스레드가 작업할 수 있다.

Vector

Vector는 공유 자원이나 복수의 사용자가 존재할 때 안전하게 프로그램을 작성 가능하다.

하지만 하나의 스레드가 하나의 자원을 이용하는 경우에는 오히려 성능이 떨어진다.

공간이 부족할 때 있는 공간 만큼 공간을 추가하기 때문에 메모리를 많이 잡아먹는다.

ArrayList

인덱스를 가지고 있어서 검색에 용이하다.

하지만 삽입/삭제를 하려면 중간에 이빨 나간 곳을 전부 한칸씩 땡기거나 뒤로 밀어야하기 때문에 삽입과 삭제가 빈번한 데이터인 경우에는 부적합하다.

Vector와 달리 동기화를 보장해주지 못하고, 공간이 모자를 때는 모자른 만큼만 공간을 확보한다.

LinkedList

  • 연결리스트 라고도 불리며 노드 간에 연결을 통해서 리스트로 구현된 객체
  • 다음 노드의 위치 정보만 가지고 있으며 인덱스를 가지고 있지 않기 때문에 탐색시 순차접근만 가능하다. (노트 탐색 시 시간이 많이 소요될 수 있음)
  • 노드 추가/삭제는 위치정보의 수정만으로 가능하기 때문에 성능이 좋음

출처

 

JAVA collection : List(vector, arraylist, linkedlist) 소개 및 특징

여러 요소의 그룹을 하나의 단위로 엮는 객체이고 다양한 인터페이스를 제공합니다. 주로 집계 데이터를 저장, 검색, 수정 및 전달하는 데 사용됩니다. - List란 Collection 인터페이스를 확장한 자��

17billion.github.io

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함