«   2019/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
Statistics Graph
관리 메뉴

언제나 휴일

[Java 언어 활용] 3.9 Queue 인터페이스 본문

언어 자료구조 알고리즘/디딤돌 Java 언어 Part2 활용

[Java 언어 활용] 3.9 Queue 인터페이스

언제나 휴일 언제나휴일 2016. 12. 10. 11:40

[Java 언어 활용] 3.9 Queue 인터페이스


 

 JavaQueue 인터페이스는 자료구조 큐를 약속한 것입니다. 자료구조 큐는 FIFO(First In First Out, 선입선출) 형태로 자료를 보관하고 꺼내는 버퍼입니다. JavaQueue 인터페이스에서는 보관할 때 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 이전까지)

[그림 3.5] 소스 3.11 수행 과정(Loop 이전까지)

0 Comments
댓글쓰기 폼