💻 IT/📌 Java

[Java] Queue 란? Java Queue 사용법

GODSU 2022. 4. 5. 12:48
반응형

저번 포스팅에서는 자료구조 중 Stack에 대해서 알아보았는데요!

 

[Java] Stack 이란 ? 스택(Stack) 사용법

오늘은 자료구조 중 하나인 Stack에 대해서 알아보겠습니다! Stack 이란? 스택(Stack)은 제한적으로 접근할 수 있는 나열 구조입니다. Stack의 가장 대표적인 특성은 가장 먼저 들어간 것이 가장 나중

godsu94.tistory.com

오늘은 자료구조 큐(Queue)에 대해서 알아보겠습니다!



Queue 이란?

큐(Queue)는 컴퓨터의 기본적인 자료구조의 한 가지로, 먼저 집어넣은 게 먼저 나오는 FIFO(First In First Out) 구조로 저장하는 형식을 말합니다

처음 큐를 접하면 이 말이 "도통 무슨 말인가?" 할 거예요! 그림으로 간단히 설명드리면~

 

그림과 같이 상자(큐)에 물건(데이터)을 넣는다고 가정하면 가장 먼저 넣은 것을 가장 먼저 꺼낼 수 있습니다.


일상생활에서 예시를 들면, KFC에 햄버거를 먹으려고 줄을 서면 가장 먼저 선 사람이 가장 먼저 구매할 수 있겠죠?? ㅎ 이해되시나요~~?

정리해보면, 큐는 스택(Stack)과 반대되는 개념으로 한쪽에서만 입력이 이루어지고, 다른 쪽 끝에서는 출력만이 이루어지는 구조입니다.

큐에 자료를 넣는 것을 인큐(Enqueue)라고 하고 반대로 넣어둔 자료를 꺼내는 것을 디큐(Dequeue)이라고 합니다. 이때 꺼내지는 자료는 가장 먼저 입력한 자료부터 나오게 됩니다.



큐(Queue) 특성
  1. 가장 먼저 들어간 것이 먼저 나오는 FIFO(First In First Out) 구조
  2. 큐는 한쪽 끝을 Front로 정해 삭제 연산만이 수행됨
  3. 큐의 다른 쪽 끝을 Rear로 정하여 삽입 연산만 수행됨
  4. 그래프의 넓이 우선 탐색(BFS)에 사용됨





Java Queue 사용법
import java.util.LinkedList; // <<-- List Class
import java.util.Queue; // <-- Queue class
 
 /* init Queue */
 Queue<Integer> queue = new LinkedList<>();

Java에서는 java.util.Queue 큐 클래스를 임포트 하면 Queue를 사용할 수 있습니다.
큐는 리스트로 구현이 되어 있어서 java.util.LinkedList 클래스도 임포트 해줘야 합니다!

 

반응형

 



[예제]

package project;

import java.util.LinkedList; // <<-- List Class
import java.util.Queue; // <-- Queue class

public class Main {

    public static void main(String[] args) {
        
        /* init Queue */
        Queue<Integer> queue = new LinkedList<>();
        
        queue.add(1);
        queue.add(2);
        queue.add(3);
        
        System.out.println("****** Data Enqueue ******");
        for(Integer integer : queue){
            System.out.println(integer);
        }
                
        System.out.println("****** Data Dequeue ******");
        System.out.println(queue.poll());
        System.out.println(queue.poll());
        System.out.println(queue.poll());
        
    }

}

 

예제를 보면 큐를 생성하고, Enqueue(add함수)와 Dequeue(poll함수)를 통해 데이터를 넣고 빼는 것을 확인할 수 있습니다.

이 뿐만 아니라 큐에서 다양한 기능을 제공하는 함수들이 있습니다.
✔ 데이터 추가 : add(), offer()
✔ 데이터 삭제 : poll(), remove()
✔ 큐 초기화 : clear()
✔ 첫 번째 값 참조 : peek()



아래 링크에서 필요한 함수들을 사용해보세요~

 

Queue (Java Platform SE 7 )

A collection designed for holding elements prior to processing. Besides basic Collection operations, queues provide additional insertion, extraction, and inspection operations. Each of these methods exists in two forms: one throws an exception if the opera

docs.oracle.com


오늘은 자료구조 중 큐(Queue)를 알아보았습니다.

감사합니다



반응형