본문 바로가기
알고리즘/복습

[Java] Queue

by 댕꼬 2022. 3. 19.

Queue


Queue :  자료구조중 하나, 먼저 집어넣은 데이터가 먼저 나오는 선입선출의 구조(FIFO: First In First Out)

 

Front : 맨 앞에 위치한 인덱스 -> 다음에 출력될 값

Rear : 맨 뒤에 위치한 인덱스 -> 가장 최근에 입력된 값

[활용]

  • 너비 우선 탐색(BFS, Breadth-First Search) 구현 
  • 캐시(Cache) 구현
  • 우선순위가 같은 작업 예약 
  • 선입선출이 필요한 대기열 
  • 콜센터 고객 대기시간
  • 프린터의 출력 처리
  • 윈도 시스템의 메시지 처리기
  • 프로세스 관리

[구현]

큐는 인터페이스이기 때문에 LinkedList 또는 ArrayDeque로 구현해주어야 한다.

Queue<String> queue = new LinkedList<String>(); 또는 

Queue<Integer> queue = new ArrayDeque<Integer>();

 

queue.offer() : 큐에 값 삽입.

queue.poll() : 큐 값 출력 및 삭제

queue.peek() : 큐 값 출력 (확인만 하고 삭제하지 않는다)

queue.size() : 큐의 길이 반환

queue.isEmpty() : 큐가 비어있는지 true/false로 반환

 

import java.util.LinkedList;
import java.util.Queue;

public class QueueAPITest {
	
	public static void main(String[] args) {
		
		Queue<String> queue = new LinkedList<String>();
		System.out.println(queue.size()+"//"+queue.isEmpty());
		queue.offer("[ssafy]");		//큐에 삽입
		queue.offer("[7기]");
		queue.offer("[화이팅]");
		queue.offer("[안녕]");
		System.out.println(queue.size()+"//"+queue.isEmpty());
		
		System.out.println(queue.poll());	//빼낸다 ssafy (삭제o)
		System.out.println(queue.size()+"//"+queue.isEmpty());
		System.out.println(queue.peek());	//확인만 (삭제x)
		System.out.println(queue.size()+"//"+queue.isEmpty());
		System.out.println(queue.poll());	
		System.out.println(queue.poll());
		System.out.println(queue.poll());
		System.out.println(queue.size()+"//"+queue.isEmpty());
		System.out.println(queue.poll());
		
		
	}

}

[예제]

https://java-is-happy-things.tistory.com/18

 

[Java] SWEA1225_암호생성기

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14uWl6AF0CFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy..

java-is-happy-things.tistory.com

 

'알고리즘 > 복습' 카테고리의 다른 글

Knapsack알고리즘  (0) 2022.04.05
[Java] Stack  (0) 2022.03.19
[Java] 부분집합(Subset)  (0) 2022.03.15
[Java] 조합  (0) 2022.03.14
[Java] 순열  (0) 2022.03.14

댓글