티스토리 뷰
728x90
반응형
FIFO (first in first out)
: 선입선출. 컬렉션 프레임 워크에는 LIFO 자료구조를 제공하는 Stack클래스와 FIFO 자료구조를 제공하는 Queue 인터페이스를 제공하고 있다.
Queue (큐)
줄 , 혹은 줄을 서서 기다리는 것.
큐 : 줄 , 혹은 줄을 서서 기다리는 것 : 순차 처리:선입선출
특징
- 큐의 가장 첫 원소를 front / 가장 끝 원소를 rear이라고 함.
큐는 들어올 때 rear로 들어오지만 나올때는 front부터 빠지는 특성이 있다.
접근방법은 가장 첫 원소와 끝 원소로만 가능. 가장 먼저 들어온 프론트 원소가 가장 먼저 삭제됨. - 우선순위가 같은 작업 예약 (프린터의 인쇄 대기열)
- 은행 업무
- 콜센터 고객 대기시간
- 프로세스 관리
- 너비 우선 탐색(BFS, Breadth-First Search) 구현
- 캐시(Cache) 구현
import java.util.LinkedList;
import java.util.Queue;
class Message{
public String command;
public String to;
public Message(String command, String to) { //생성자
this.command = command;
this.to = to;
}
}
public class Queue01 {
public static void main(String[] args) {
Queue<Message> messageQueue = new LinkedList<Message>(); //큐 생성
messageQueue.offer(new Message("sendMail", "홍길동"));
messageQueue.offer(new Message("sendSMS", "신용권"));
messageQueue.offer(new Message("sendKakaotalk", "홍두깨"));
// System.out.println(messageQueue.poll().to);//홍길동
// System.out.println(messageQueue.poll().command);//sendMail
// System.out.println(messageQueue.poll());//coll.Message@5594a1b5
// System.out.println(messageQueue);//[coll.Message@3b6eb2ec, coll.Message@1e643faf]
//messageQueue.getValue()는 사용불가! (이건 getter, setter)
while(!messageQueue.isEmpty()) {
Message message = messageQueue.poll();
switch (message.command) {
case "sendMail" :
System.out.println(message.to + "님에게 보냄."); //홍길동님에게 보냄.
break;
case "sendSMS" :
System.out.println(message.to + "님에게 보냄."); //신용권님에게 보냄.
break;
case "sendKakaotalk" :
System.out.println(message.to + "님에게 보냄."); //홍두깨님에게 보냄.
break;
}
}
}
}
728x90
반응형
'Java > JAVA' 카테고리의 다른 글
IO(Input/Output) & Stream (1) | 2023.01.15 |
---|---|
Garbage Collection (가비지 컬랙션) (0) | 2023.01.11 |
Stack - LIFO(last in first out) (0) | 2023.01.09 |
컬렉션 프레임워크(Collection Framwork)란? (0) | 2023.01.08 |
Map (0) | 2023.01.08 |
댓글
250x250
반응형
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday