반응형
Queue<E> 인터페이스
- 클래스로 구현된 스택과는 달리 자바에서 큐 메모리 구조는 별도의 인터페이스 형태로 제공된다.
- Queue 인터페이스를 상속받는 하위 인터페이스는 1. Deque<E>, 2. BlockingDeque<E>, 3. BlockingQueue<E>, 4. TransferQueue과 같다. 따라서 Queue 인터페이스를 직간접적으로 구현한 클래스는 상당히 많다. 그중에서도 Deque 인터페이스를 구현한 LinkedList 클래스가 큐 메모리 구조를 구현하는 데 가장 많이 사용된다.
- 큐 메모리 구조는 선형 메모리 공간에 데이터를 저장하면서 선입선출(FIFO)의 시멘틱을 따르는 자료 구조다. 즉, 가장 먼저 저장된(push) 데이터가 가장 먼저 인출(pop)되는 구조다.

- Queue 인터페이스는 큐 메모리 구조를 표현하기 위해, 다음과 같은 Collection 인터페이스 메소드만을 상속받아 사용한다.

- 더욱 복잡하고 빠른 큐를 구현하고 싶다면 Deque 인터페이스를 구현한 ArrayDeque 클래스를 사용하면 된다.
Deque<Integer> qu = new ArrayDeque<Integer>();
- Java SE 6부터 지원되는 ArrayDeque 클래스는 스택과 큐 메모리 구조를 모두 구현하는데 가장 적합한 클래스다.
LinkedList<String> qu = new LinkedList<String>(); // 큐의 생성
//Deque<String> qu = new ArrayDeque<String>();
// add() 메소드를 이용한 요소의 저장
qu.add("넷");
qu.add("둘");
qu.add("셋");
qu.add("하나");
// peek() 메소드를 이용한 요소의 반환
System.out.println(qu.peek());
System.out.println(qu);
// poll() 메소드를 이용한 요소의 반환 및 제거
System.out.println(qu.poll());
System.out.println(qu);
// remove() 메소드를 이용한 요소의 제거
qu.remove("하나");
System.out.println(qu);
Reference
반응형
'Language > Java' 카테고리의 다른 글
[Java] 자바 컬렉션 프레임워크 - Map 컬렉션 클래스 (0) | 2024.04.14 |
---|---|
[Java] 자바 컬렉션 프레임워크 - Set 컬렉션 클래스 (0) | 2024.04.14 |
[Java] 자바 컬렉션 프레임워크 - List 컬렉션 클래스 (0) | 2024.04.14 |
[Java] 자바 컬렉션 프레임워크 - 정의, 상속관계, 특징 (0) | 2024.04.14 |
[Java] 자바 제네릭 - 선언, 생성, 타입변수 제한, 제네릭 메소드, 와일드 카드 (0) | 2024.04.14 |