본문 바로가기

Knowledge/Data Structure

List (ArrayList, LinkedList, Vector)

리스트 (List)


순열(sequence)라고도 불리며, 순서를 가지고 일렬로 나열한 원소들의 모임이다.

순서가 있다는 점에서 집합과는 구별되며, 갈림길 없이 일렬로 나열되어 처음과 끝이 각각

하나씩만 있다는 점에서 트리나 그래프와도 구별된다.


》》 저장공간이 정해져있지 않으므로 필요에 의해 자동으로 늘어난다.

》》 중복이 있고, 순서가 있다.




자바에서는 List자료구조를 크게 ArrayList, LinkedList, Vector 로 세분화할 수 있다.


※ ArrayList

객체 내부에 있는 배열에 데이터를 저장한다.

ArrayList arraylist = new ArrayList();


》》 ArrayList 정렬

Collections.sort(this); // 올림차순

Collections.sort(this, Collections.reverseOrder()); // 내림차순


※ Vector

ArrayList와 동일하게 사용 가능하나 차이점은 Vector는 동기화를 해준다.

즉, 데이터 동시 접속이 발생했을 시에 처리 능력이 있다.

ArrayList는 비동기화이지만 Vector보다 가볍고 속도가 빠르다는 장점이 있다.

웹에서는 서버가 동시 접속에 대한 처리를 해주기때문에 ArrayList를 사용해도 무방하다.

Vector v = new Vector();


※ LinkedList

노드가 하나의 링크 필드에 의해서 다음 노드와 연결되는 구조를 가진 연결리스트 자료구조이다.

삽입,삭제가 빠르지만 탐색이 느리다는 단점이 있다.

Iterator(반복자)를 사용한다. --> LinkedList 자료구조는 항상 처음부터 검색해야한다는 단점이 있다.

하지만 Iterator를 사용한다면 마지막 접근한 데이터로부터 접근이 가능하다.

즉, Vector나 ArrayList처럼 사용이 가능하다는 말이다.

LinkedList linkedlist = new LinkedList();


》》 Iterator

데이터를 추출하기 위한 데이터 임시 저장 공간이다. 주로 순서가 없는 자료구조의 값들을 추출할 때 사용된다.


LinkedList는 데이터의 삽입, 삭제가 많을 때 사용되고, ArrayList 나 Vector는 데이터 검색이 많을 때 주로 사용된다.







참조 : http://j2yes.tistory.com/entry/자료구조-list-set-map