본문 바로가기

Java

[Java] LinkedList (List, Queue, Deque, Stack)

List

 

추가 / 삭제

add(E e) 맨 뒤에 추가
add(int index, E e) 원하는 위치에 삽입
remove(int index) 해당 인덱스 원소 삭제
set(int index, E e) 값 수정

 

조회

get(int index) 특정 위치 값 가져오기
indexOf(Object o) 값이 있는 첫 번째 위치
size() 크기
isEmpty() 비어있는지 확인

 

LinkedList<String> list = new LinkedList<>();
list.add("A");
list.add("B");
list.add(1, "C");   // A, C, B
System.out.println(list.get(1)); // "C"

 

Queue

 

offer(E e) 큐 맨 뒤 삽입
poll() 큐 맨 앞 꺼내기
peek() 큐 맨 앞 보기

 

Queue<Integer> q = new LinkedList<>();
q.offer(10);
q.offer(20);
System.out.println(q.poll()); // 10
System.out.println(q.peek()); // 20

Deque

 

앞 / 뒤 추가

addFirst(E e) addLast(E e)
offerFirst(E e) offerLast(E e)

 

앞 / 뒤 삭제

removeFirst() removeLast()
pollFirst() pollLast()

 

앞 / 뒤 조회

getFirst() getLast()
peekFirst() peekLast()

 

Deque<Integer> dq = new LinkedList<>();
dq.addFirst(1);  // [1]

 

dq.addLast(2);   // [1, 2]
System.out.println(dq.pollFirst()); // 1
System.out.println(dq.pollLast());  // 2

 


 

Stack

 

 

push(E e) 맨 앞에 삽입
pop() 맨 앞에서 꺼내기
peek() 맨 앞 값 보기

 

Stack<Integer> stack = new Stack<>();
stack.push(100);
stack.push(200);
System.out.println(stack.pop());  // 200
System.out.println(stack.peek()); // 100

GitHub