[Java 언어 활용] 3.9 Queue 인터페이스
Java의 Queue 인터페이스는 자료구조 큐를 약속한 것입니다. 자료구조 큐는 FIFO(First In First Out, 선입선출) 형태로 자료를 보관하고 꺼내는 버퍼입니다. Java의 Queue 인터페이스에서는 보관할 때 offer 메서드를 사용하며 가장 먼저 보관한 자료를 꺼낼 때는 poll 메서드를 사용합니다. 이 외에 가장 먼저 보관한 자료를 단순 참조하는 peek 메서드와 비었는지 판별하는 empty 메서드를 제공하고 있습니다.
public void offer(Element data);//순차보관
public Element poll();//가장 먼저 보관한 값 꺼내고 반환
public Element peek();//가장 먼저 보관한 값 단순 참조, 꺼내지 않음
public boolean empty(); //비어있는지 판별
그리고 제네릭 형태로 사용할 때 큐를 구현한 클래스인 LinkedList, priorityQueue, priorityBlockingQueue 를 생성하여 사용합니다.
다음은 LinkedList를 생성하여 큐를 사용하는 예제입니다.
▷ 소스 3.11 큐 사용 예
//큐 사용 예 import java.util.Queue; import java.util.LinkedList; public class Program { public static void main(String[] args){ Queue<String> q = new LinkedList<String>(); q.offer("강감찬"); //"강감찬" q.offer("홍길동"); //"강감찬","홍길동" System.out.println(q.peek());//"강감찬" 참조 //여전히 "강감찬","홍길동"
System.out.println(q.poll());//"강감찬" 꺼냄, 현재 "홍길동" q.offer("이순신"); //"홍길동", "이순신" q.offer("김구"); //"홍길동", "이순신", "김구" while(q.isEmpty()==false){ System.out.println(q.poll()); //"홍길동", "이순신", "김구" 순으로 꺼냄 } } } |
▷ 소스 3.11 실행 결과
강감찬 강감찬 홍길동 이순신 김구 |
[그림 3.5] 소스 3.11 수행 과정(Loop 이전까지)
'언어 자료구조 알고리즘 > 디딤돌 Java 언어 Part2 활용' 카테고리의 다른 글
[Java 언어 활용] 3.12 HashMap 클래스 (3) | 2016.12.16 |
---|---|
[Java 언어 활용] 3.11 Map 인터페이스 (0) | 2016.12.16 |
[Java 언어 활용] 3.10 HashSet 클래스 (0) | 2016.12.10 |
[Java 언어 활용] 3.8 Stack 클래스 (0) | 2016.12.10 |
[Java 언어 활용] 3.7 LinkedList 클래스 (0) | 2016.12.10 |
[Java 언어 활용] 3.6 ArrayList 클래스 (0) | 2016.12.10 |
[Java 언어 활용] 3.5 Iterator 클래스 (0) | 2016.12.10 |
[Java 언어 활용] 3.4.2 Vector를 이용하여 인덱스로 관리하기 (0) | 2016.12.10 |
[Java 언어 활용] 3.4.1 Vector를 이용하여 특정 키 순으로 보관하기 (0) | 2016.12.10 |
[Java 언어 활용] 3.4 Vector 클래스 (0) | 2016.12.10 |