1. LinkedList 란?
2. LinkedList vs ArrayList
public class LinkedList<E>
extends AbstractSequentialList<E>
implements List<E>, Deque<E>, Cloneable, Serializable
public class ArrayList<E>
extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable
LinkedList와 ArrayList는 위와 같이 인터페이스를 구현하고 있습니다. 한가지 다른건 Deque를 구현한다는 점이 ArrayList와 다릅니다. 따라서 Java의 Queue에서 지원하는 메소드를 사용할 수 있다는게 특징입니다.
Queue 지원 메소드(FIFO 특성)
- boolean offer(Object o): Queue에 삽입
- Object poll(): Queue에서 가장 먼저 삽입된 요소 제거하며 읽기
- Object peek(): Queue에서 가장 먼저 삽입된 요소 제거하지 않고 읽기
LinkedList 지원 메소드
- boolean add(Object o): List의 끝에 삽입
- void add(int index, Object o): index 위치에 요소를 추가
- boolean addAll(Collection c): List의 끝에 컬렉션의 모든 내용 추가
- void addFirst(Object o): List의 첫부분에 삽입
- void addLast(Object o): List의 마지막 부분에 삽입
- void clear(): List의 모든 객체 삭제
- Object element(): List의 첫 요소를 제거하지 않고 읽기
- Object removeFirst(): List의 첫 요소를 제거하며 읽기
- Object get(int index): index 위치의 요소를 반환
- boolean isEmpty(): List가 비어있는지 여부 반환
- Object set(int index, Object o): List의 index 위치의 요소를 세팅
- int size(): List의 요소 수를 반환
- List subList(int fromIndex, int toIndex): List의 [fromIndex, toIndex)까지를 List로 반환
- Object[] toArray(): List를 배열로 변환하여 반환
- boolean removeAll(Collection c): 인자로 전달된 collection의 요소와 일치하는 모든 요소를 제거
- boolean retainAll(Collection c): 인자로 전달된 collection의 요소를 모두 포함되어 있는지 여부 반환
LinkedList 초기화
LinkedList<Integer> list = new LinkedList<Integer>();
※ 모든 메소드를 적은것은 아닙니다. 추가로 필요한 메소드는 밑의 문서를 확인해주세요
https://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html
부족한 부분이 있다면 언제든 조언 부탁드립니다 ㅎㅎ
반응형
'Algorithm > Basic' 카테고리의 다른 글
[C++] Vector Container 사용법 정리 (0) | 2020.09.18 |
---|