1οΈβ£ LinkedListλ₯Ό μ¬μ©ν Deque.
βLinkedListβ λ βDequeβ μΈν°νμ΄μ€λ₯Ό ꡬνν ν΄λμ€ μ€ νλλ‘, μμͺ½ λμμ μ½μ
κ³Ό μμ κ° κ°λ₯ν μ΄μ€ μ°κ²° 리μ€νΈ κΈ°λ°μ μλ£ κ΅¬μ‘°μ
λλ€.
βLinkedListβ λ βDequeβ λΏλ§ μλλΌ βListβ, βQueueβ μΈν°νμ΄μ€λ ꡬννμ¬ λ€μν ννλ‘ μ¬μ©ν  μ μμ΅λλ€.
2οΈβ£ μ£Όμ νΉμ§.
- 
    μ΄μ€ λ ν : μμͺ½ λμμ μμλ₯Ό μΆκ°νκ³ μ κ±°ν μ μμ΅λλ€. 
- 
    μ΄μ€ μ°κ²° 리μ€νΈ : κ° λ Έλλ μ΄μ  λ Έλμ λ€μ λ Έλλ₯Ό κ°λ¦¬ν€λ λ κ°μ ν¬μΈν°λ₯Ό κ°μ§λλ€. 
- 
    λΉλκΈ°μ  : β LinkedListβ λ λΉλκΈ°μ μΌλ‘ λμνλ―λ‘ λκΈ°νλ νκ²½μμ μμ νμ§ μμ΅λλ€.
3οΈβ£ μ£Όμ λ©μλ.
μ½μ μ°μ°.
- 
    β addFirst(E e)β : μ§μ λ μμλ₯Ό λ±μ μμͺ½μ μΆκ°ν©λλ€.
- 
    β addLast(E e)β : μ§μ λ μμλ₯Ό λ±μ λ€μͺ½μ μΆκ°ν©λλ€.
- 
    β offerFirst(E e)β : μ§μ λ μμλ₯Ό λ±μ μμͺ½μ μΆκ°ν©λλ€.
- 
    β offerLast(E e)β : μ§μ λ μμλ₯Ό λ±μ λ€μͺ½μ μΆκ°ν©λλ€.
μμ  μ°μ°.
- 
    β removeFirst()β : λ±μ μμͺ½μμ μμλ₯Ό μ κ±°νκ³ λ°νν©λλ€.
- 
    β removeLast()β : λ±μ λ€μͺ½μμ μμλ₯Ό μ κ±°νκ³ λ°νν©λλ€.
- 
    β pollFirst()β : λ±μ μμͺ½μμ μμλ₯Ό μ κ±°νκ³ λ°νν©λλ€.
- 
    β pollLast()β : λ±μ λ€μͺ½μμ μμλ₯Ό μ κ±°νκ³ λ°νν©λλ€.
μ‘°ν μ°μ°.
- 
    β getFirst()β : λ±μ μμͺ½μ μλ μμλ₯Ό λ°νν©λλ€.
- 
    β getLast()β : λ±μ λ€μͺ½μ μλ μμλ₯Ό λ°νν©λλ€.
- 
    β peekFirst()β : λ±μ μμͺ½μ μλ μμλ₯Ό λ°νν©λλ€.
- 
    β peekLast()β : λ±μ λ€μͺ½μ μλ μμλ₯Ό λ°νν©λλ€.
μ€ν μ°μ°.
- 
    β push(E e)β : μ€νμ 맨 μμ μμλ₯Ό μΆκ°ν©λλ€.(FIFO, First In First Out)
- 
    β pop()β : μ€νμ 맨 μμ μλ μμλ₯Ό μ κ±°νκ³ λ°νν©λλ€.(LIFO, Last In First Out)
4οΈβ£ μκ° λ³΅μ‘λ
- 
μ½μ
κ³Ό μμ  μ°μ° : βaddFirstβ, βaddLastβ, βremoveFirstβ, βremoveLastβ, βofferFirstβ, βofferLastβ, βpollFirstβ, βpollLastβ λ±μ μ°μ°μ O(1)μ λλ€.- μ΄μ€ μ°κ²° 리μ€νΈλ₯Ό μ¬μ©νκΈ° λλ¬Έμ μμͺ½ λμμμ μ½μ κ³Ό μμ λ μμ μκ° λ΄μ μνλ©λλ€.
 
- 
    μ‘°ν μ°μ° : β getFirstβ, βgetLastβ, βpeekFirstβ, βpeekLastβ λ±μ μ°μ°μ O(1)μ λλ€.
- 
μμ μ κ·Ό μ°μ°( **βget(int index)β, βset(int index, E element)β λ±) :** μΈλ±μ€λ₯Ό μ¬μ©ν μ κ·Ό μ°μ°μ 리μ€νΈμ μ€κ°μ μλ μμλ₯Ό μ°ΎκΈ° μν΄ λ¦¬μ€νΈλ₯Ό μνν΄μΌ νλ―λ‘ O(n) μκ°μ΄ 걸립λλ€.
5οΈβ£ μ½λ μμ.
μλ μ½λλ βLinkedListβ λ₯Ό βDequeβ λ‘ μ¬μ©νλ μμ μ
λλ€.
import java.util.Deque;
import java.util.LinkedList;
public class LinkedListDequeExample {
	public static void main(String[] args) {
		// LinkedListλ‘ Deque μμ±
		Deque<Integer> deque = new LinkedList<>();
		// μμ μ½μ
		deque.addFirst(1);
		deque.addLast(2);
		deque.offerFirst(0);
		deque.offerLast(3);
		// μμ μ‘°ν
		System.out.println("First element: " + deque.getFirst());
		System.out.println("Last element: " + deque.getLast());
		System.out.println("Peek first element: " + deque.peekFirst());
		System.out.println("Peek last element: " + deque.peekLast());
		// μμ μμ 
		System.out.println("Removed first element: " + deque.removeFirst());
		System.out.println("Removed last element: " + deque.removeLast());
		System.out.println("Poll first element: " + deque.pollFirst());
		System.out.println("Poll last element: " + deque.pollLast());
		// λ±μ ν¬κΈ°μ λΉμ΄ μλμ§ μ¬λΆ νμΈ
		System.out.println("Deque size: " + deque.size());
		System.out.println("Is deque empty? " + deque.isEmpty());
		// μ€ν μ°μ°.
		deque.push(4);
		System.out.println("Pushed element: " + deque.peekFirst());
		System.out.println("Popped element: " + deque.pop());
	}
}
/*
=== μΆλ ₯ ===
First element: 0
Last element: 3
Peek first element: 0
Peek last element: 3
Removed first element: 0
Removed last element: 3
Poll first element: 1
Poll last element: 2
Deque size: 0
Is deque empty? true
Pushed element: 4
Popped element: 4
*/
πββοΈ μ€λͺ .
- 
    - 
λ² μ΄ μ΄κΈ°ν : βDEFAULT_CAPACITYβ ν¬κΈ°μ λ°°μ΄μ μ΄κΈ°ννκ³ , βheadβ, βtailβ, βsizeβ λ³μλ₯Ό μ΄κΈ°ν ν©λλ€.
 
- 
λ² μ΄ μ΄κΈ°ν : β
- 
    - 
μ½μ
 μ°μ°( **βaddFirstβ, βaddLastβ) :** μμλ₯Ό λ±μ 첫 λ²μ§Έ λλ λ§μ§λ§μ μΆκ°ν©λλ€.
 
- 
μ½μ
 μ°μ°( **β
- 
    - 
μμ  μ°μ°( **βremoveFirstβ, βremoveLastβ) :** 첫 λ²μ§Έ μμμ λ§μ§λ§ μμλ₯Ό κ°κ° μ κ±°ν©λλ€.
 
- 
μμ  μ°μ°( **β
- 
    - 
μ‘°ν μ°μ°( **βgetFirstβ, βgetLastβ, βpeekFirstβ, βpeekLastβ) :** 첫 λ²μ§Έ μμμ λ§μ§λ§ μμλ₯Ό λ°νν©λλ€.
 
- 
μ‘°ν μ°μ°( **β
- 
    - 
κΈ°ν λ©μλ : βsizeβ μ βisEmptyβ λ©μλλ λ±μ ν¬κΈ°μ λΉμ΄ μλμ§ μ¬λΆλ₯Ό λ°νν©λλ€.
 
- 
κΈ°ν λ©μλ : β
- 
    - 
μ€ν μ°μ°( **βpushβ, βpopβ) :** μ€νμ 맨 μμ μμλ₯Ό μΆκ°νκ³ , μ€νμ 맨 μμ μλ μμλ₯Ό μ κ±°νκ³ λ°νν©λλ€.
 
- 
μ€ν μ°μ°( **β
μ μμ μ½λμμλ β
LinkedListβ λ₯Ό βDequeβ λ‘ μ¬μ©νμ¬ λ€μν μ°μ°μ μννλ λ°©λ²μ 보μ¬μ€λλ€.
βLinkedListβ λ μ΄μ€ μ°κ²° 리μ€νΈλ₯Ό μ¬μ©νκΈ° λλ¬Έμ μμͺ½ λμμμ μ½μ κ³Ό μμ κ° λΉ λ₯΄κ³ ν¨μ¨μ μ λλ€.
 devkobe24.com
                devkobe24.com
            