LinkedList
LinkedList 클래스는 Java Collection Framework의 일부이며, 연결리스트(Linked List)를 구현한 클래스
👉🏻 연결리스트 설명
LinkedList는 Queue의 특성과 요구사항을 잘 반영하여 구현할 수 있는 자료구조
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
java.util.AbstractSequentialList<E>
java.util.LinkedList<E>
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
LinkedList<Integer> linkedList = new LinkedList<>();
}
}
Constructor
| Constructor | Description |
|---|
| LinkedList() | 타입을 설정하지 않고 empty list로 구성 |
| LinkedList(Collection<? extends E> c) | class, Integer, String, Character, 등의 타임으로 선언 |
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
LinkedList linkedList = new LinkedList();
LinkedList<Node> linkedList1 = new LinkedList<>();
LinkedList<Integer> linkedList2 = new LinkedList<>();
LinkedList<String> linkedList3 = new LinkedList<>();
LinkedList<Character> linkedList4 = new LinkedList<>();
}
}
Method
삽입
| Type | Method | Description |
|---|
| boolean | add(E e) | 리스트의 끝에 삽입 |
| void | add(int index, E element) | 특정 index에 삽입 |
| void | addFirst(E e) | 리스트의 맨 앞에 삽입 |
| void | addLast(E e) | 리스트의 맨 끝에 삽입 |
| Object | clone() | 깊은 복사 |
| boolean | offer(E e) | 리스트의 끝에 삽입 |
| boolean | offerFirst(E e) | 리스트의 맨 앞에 삽입 |
| boolean | offerLast(E e) | 리스트의 맨 끝에 삽입 |
| E | set(int index, E element) | 해당 index의 값을 element로 대체 |
순회
| Type | Method | Description |
|---|
| boolean | contains(Object o) | 해당 요소가 존재하는지 확인 |
| E | element() | 리스트의 맨 처음 값(삭제X) |
| E | get(int index) | 특정 index의 요소 |
| E | getFirst() | 리스트의 맨 처음 값(삭제X) |
| E | getLast() | 리스트의 맨 끝 값(삭제X) |
| E | peek() | 리스트의 맨 처음 값(삭제X) |
| E | peekFirst() | 리스트의 맨 처음 값(삭제X) |
| E | peekLast() | 리스트의 맨 끝 값(삭제X) |
| int | indexOf(Object o) | 해당 요소의 index값(해당 요소가 없으면 -1) |
| int | lastIndexOf(Object o) | 해당 요소가 마지막으로 나온 index 값(해당 요소가 없으면 -1) |
| int | size() | 리스트의 크기 |
삭제
| Type | Method | Description |
|---|
| void | clear() | 리스트의 모든 요소 삭제 |
| E | poll() | 리스트의 맨 처음 값(삭제O, 빈리스트 null) |
| E | pollFirst() | 리스트의 맨 처음 값(삭제O, 빈리스트 null) |
| E | pollLast() | 리스트의 맨 끝 값(삭제O, 빈리스트 null) |
| E | remove() | 리스트의 맨 처음 값 삭제 |
| E | remove(int index) | 해당 index 값 삭제 |
| boolean | remove(Object o) | 해당 object 값 삭제 |
생각해볼 점
중간에 있는 요소에 접근할 때는 순차적으로 탐색해야 하므로 성능이 떨어질 수 있다.
따라서 요소의 검색이 자주 발생하는 경우에는 ArrayList나 HashSet 등의 다른 자료구조를 고려해야한다.
출처 : LinkedList (Java Platform SE 8 )