Queue
Queue 자료구조의 특성인 FIFO(First In, First Out) 원칙에 따라 순차적으로 입장하는 간단한 코드를 작성
package stack;
import jdk.jshell.spi.ExecutionControl;
import java.util.*;
public class Queue02 {
public static void main(String[] args) {
// Queue - LinkedList로 구현하는 대기번호
Queue<String> queue = new LinkedList<>();
Timer time = new Timer();
queue.add("김철수");
queue.add("홍길동");
queue.add("양동근");
queue.add("김길수");
System.out.println("-------------------------------------------");
System.out.println(">>>>> " + queue.toString() + " 대기중입니다.");
int qSize = queue.size();
for(int i = 0; i < qSize; i++ ){
System.out.println("-------------------------------------------");
try{
Thread.sleep(2000);
System.out.println(">>>>> " + queue.poll() + " 입장했습니다");
System.out.println(">>>>> " + queue.size() + " 명 대기중입니다.");
if(queue.size() == 0){
System.out.println("-------------------------------------------");
System.out.println(" 모두 입장 완료하였습니다. ");
System.out.println("-------------------------------------------");
System.out.println(" >> 시스템을 종료합니다. ");
System.out.println("-------------------------------------------");
System.exit(0); // 프로그램 종료
}
}catch (InterruptedException e){
e.printStackTrace();
}
}
}
}
설명
Queue 인터페이스 LinkedList를 구현하여 순차적으로 입장하는 것을 코드로 구현.
add() : 고객들의 순서를 저장 (가장 먼저 들어온 순서되로 누적됨)
poll() : 입장 (가장 먼저 들어온 값이 출력되고, 해당 위치는 삭제됨)
Thread.sleep(2000) : 2초 간격으로 입장
간단하게 구현한 코드이기 때문에 실제 대기열 시스템이라고 보기는 어렵지만, 먼저 들어온 데이터가 먼저 나간다는 FIFO 개념에
따라 코드가 동작하는 것을 확인할수 있음.
'자료구조 & 알고리즘 > 자료구조 & 알고리즘' 카테고리의 다른 글
[자료구조] Deque (1) | 2024.09.16 |
---|---|
[자료구조] 선형자료구조 (1) | 2024.09.13 |
[자료구조] Queue (0) | 2024.09.11 |
[자료구조] Stack (0) | 2024.09.10 |
자료구조 및 알고리즘 <시간복잡도> (0) | 2024.03.15 |