
LinkedList 클래스는 그림과 같이 인터페이스 List와 인터페이스 Deque를 구현한 클래스로 배열의 단점을 보완한 자료구조이다. LinkedList 클래스는 불연속적으로 존재하는 데이터를 서로 연결(link)한 형태로 구성되어 있다. LinkedList는 중간에서 데이터를 추가/삭제하는 속도가 ArrayList에 비해 굉장히 빠르지만 순차적으로 데이터를 추가/삭제하거나 데이터를 읽는 시간은 ArrayList에 비해 더 느리다.
마지막으로 LinkedList클래스는 더블 링크드 리스트(Double Linked List)의 형태로 구현되어 있다. 이는 LinkedList에 저장되어 있는 각 요소에 대해 단방향이 아닌 양방향으로 접근하는걸 가능하게 해준다.
반환타입이 boolean인 메서드들은 작업에 성공하거나 사실이면 true, 아니면 false를 반환한다.
| 메서드 | 기능 |
|---|---|
| LinkedList() | LinkedList 객체 생성 |
| LinkedList(Collection c) | 주어진 컬렉션(c)을 포함하는 LinkedList객체를 생성 |
| 메서드 | 기능 |
|---|---|
| boolean add(Object o) boolean addAll(Collection c) | 지정된 객체(o) 또는 Collection(c)의 객체들을 ㅣLinkedList에 추가. |
| void add(int index, Object element) boolean addAll(int index, Collection c) | 지정된 위치(index)에 객체(element) 또는 컬렉션(c)에 포함된 객체들을 추가 |
| 메서드 | 기능 |
|---|---|
| boolean contains(Object o) boolean containsAll(Collection c) | 지정된 객체(o) 또는 Collection(c)의 객체들이 포함되어 있는지 확인. |
| int indexOf(Object o) | 지정된 객체의 위치(index)를 반환 (List의 첫 번째 요소부터 순방향으로 탐색) |
| int lastIndexOf(Object o) | 지정된 객체의 위치(index)를 반환 (List의 마지막 요소부터 역방향으로 탐색) |
| 메서드 | 기능 |
|---|---|
| boolean remove(Object o) boolean removeAll(Collection c) | 지정된 객체(o) 또는 Collection(c)의 객체들을 삭제. |
| Object remove(int index) | 지정된 위치(index)에 있는 객체를 삭제하고 삭제한 객체를 반환 |
| boolean retainAll(Collection c) | 지정된 Collection에 포함된 객체만을 남기고, 다른 객체들은 LinkedList에서 삭제 집합의 교집합 개념과 유사함. |
| void clear() | LinkedList의 모든 객체를 삭제 |
| 메서드 | 기능 |
|---|---|
| Object get(int index) | 지정된 위치(index)에 있는 객체를 반환 |
| Object set(int index, Object element) | 지정된 위치(index)에 있는 객체를 element로 변경 |
Queue에 대한 설명은 해당링크를 참조한다.
다음의 메서드는 예외를 발생시키는 메서드이다.
| 메서드 | 기능 |
|---|---|
| boolean add(Object o) | 지정된 객체를 LinkedList에 추가. 저장공간이 부족하면 IllegalStateException 발생 |
| Object remove() | LinkedList에서 첫번째 객체를 꺼내 반환. 비어있으면 NoSuchElementException 발생 |
| Object element() | 삭제없이 첫번째 요소를 읽음. 비어있으면 NoSuchElementException 발생 |
다음의 메서드는 예외를 발생시키지 않는 메서드이다.
| 메서드 | 기능 |
|---|---|
| boolean offer(Object o) | LinkedList에 객체를 저장 |
| Object poll() | LinkedList에서 첫번째 객체를 꺼내서 반환 비어있으면 null을 반환 |
| Object peek() | 삭제없이 첫번째 요소를 읽음 비어있으면 null을 반환 |
Deque에 대한 설명은 해당 링크를 참조한다.
| 메서드 | 기능 |
|---|---|
| void addFirst(Object o) | LinkedList의 맨 앞에 객체(o)를 추가 |
| void addLast(Object o) | LinkedList의 맨 뒤에 객체(o)를 추가 |
| boolean offerFirst(Object o) | LinkedList의 맨 앞에 객체(o)를 추가 |
| boolean offerLast(Object o) | LinkedList의 맨 뒤에 객체(o)를 추가 |
| 메서드 | 기능 |
|---|---|
| Object getFirst() | LinkedList의 맨 앞 요소를 반환 비어있으면 NoSuchElementException 발생 |
| Object getLast() | LinkedList의 맨 뒤 요소를 반환 비어있으면 NoSuchElementException 발생 |
| Object peekFirst() | LinkedList의 맨 앞 요소를 반환 비어있으면 null을 반환 |
| Object peekLast() | LinkedList의 맨 뒤 요소를 반환 비어있으면 null을 반환 |
| 메서드 | 기능 |
|---|---|
| Object removeFirst() | LinkedList의 맨 앞 요소를 꺼내서 반환 비어있으면 NoSuchElementException 발생 |
| Object removeLast() | LinkedList의 맨 뒤 요소를 반환 비어있으면 NoSuchElementException 발생 |
| Object PollFirst() | LinkedList의 맨 앞 요소를 꺼내서 반환 비어있으면 null을 반환 |
| Object PollLast() | LinkedList의 맨 뒤 요소를 꺼내서 반환 비어있으면 null을 반환 |
| boolean removeFirstOccurence(Object o) | LinkedList에서 앞에서부터 첫번째로 일치하는 객체를 제거 |
| boolean removeLastOccurence(Object o) | LinkedList에서 뒤에서부터 첫번째로 일치하는 객체를 제거 |
| 메서드 | 기능 |
|---|---|
| void push(Object o) | LinkedList의 맨 앞에 객체(o)를 추가 |
| Object pop() | LinkedList의 맨 앞 객체(o)를 꺼내서 반환 |
| 메서드 | 기능 |
|---|---|
| boolean equals(Object o) | 동일한 LinkedList인지 확인 |
| int hashCode() | LinkedList의 해시 코드를 반환 |
| 메서드 | 기능 |
|---|---|
| Iterator iterator() | 해당 LinkedList의 iterator를 얻어서 반환 |
| ListIterator listIterator() ListIterator listIterator(int index) | 해당 LinkedList의 객체에 접근할 수 있는 ListIterator를 얻어서 반환 |
| Iterator descendingIterator() | 역순으로 조회하기 위한 DescendingIterator를 반환 |
| 메서드 | 기능 |
|---|---|
| boolean isEmpty() | LinkedList가 비어있는지 확인 |
| int size() | LinkedList에 저장된 객체의 개수를 반환 |
| void sort(Comparator c) | 지정된 비교자(comparator)로 LinkedList를 정렬 |
| 메서드 | 기능 |
|---|---|
| Object[] toArray() | LinkedList에 저장된 객체를 객체배열(Object[])로 반환 |
| Object[] toArray(Object[] a) | 지정된 배열에 LinkedList의 객체를 저장해서 반환 |
| List subList(int fromIndex, int toIndex) | 지정된 범위(fromIndex부터 toIndex)에 있는 객체를 반환 |
자바의 정석 3판 (저자 : 남궁성)
Java Collections Framework Video Tutorial
오라클 Java 문서