• 2010. 12. 8.

    by. 별머루

      
      

    Java 예제 - Queue(큐) Class

      


    Java 예제 - Queue(큐) Class

    지난번엔 Stack(스택) 클레스에 대해 알아봤습니다. 이번엔 Stack class 와는 반대 개념인 Queue(큐) 클래스에 대해 알아보겠습니당!!





    위의 그림에서 보듯이 요소를 데어티 구조의 양쪽 단에서만 저장 / 접근 할수 있는 컬렉션 입니다. 




    FIFO ( First - In - First - Out ) 구조로 위아래 양쪽 구멍이 뚫려 있어 쉽게 말해 "밑 빠진 독" 이라고 볼수 있습니다(물론 줄줄 새진 않죠 ^^;;)

    이렇게 들어오는곳과 나오는곳이 다르기 때문에 Queue(큐)에 먼저 들어간 데이터가 가장 먼저 나오게 됩니다^^

    Queue(큐) 클래스 인스턴스를 생성하기 위해선 아래와 같이 "LinkedList()" 생성자를 호출해 주면됩니다


    Queue Myque = new LinkedList();


    Queue(큐) 클래스의 접근 메서드는 크게 "offer()" 와 "poll()" 메서드가 가장 중요한 역활을 합니다. Stack 클래스와 마찬가지로 "peek()" 메서드도 있다

    는 사실도 잊지 말아주세요 !! ^^


    메서드 설명
    boolean offer() Queue(큐)에 객체를 넣는다
    poll() Queue(큐)에서 데이터를 꺼내온다. 만일 Queue(큐)가 비어있다면 null 을 반환.
    peek() 큐의 맨 아래 있는 객체를 반환한다. 이 때 객체를 큐에서 제거하진 않는다.







    자 이제 Queue(큐) 를 이용한 예제를 한번 해보도록 하겠습니당!!




    import java.util.*;

    public class ExQueue {
     
     public static void main(String[] args)
     {
      Queue Myque = new LinkedList(); 
      
      String str1 = "1. 머루";
      String str2 = "2. 별머루";
      String str3 = "3. 산머루";
      String str4 = "4. 달머루";
      
      Myque.offer(str1); 
      Myque.offer(str2);
      Myque.offer(str3);
      Myque.offer(str4);
      
      while(Myque.peek() != null) 
      {
       String val = (String)Myque.poll(); 
       System.out.println("값은 " + val);
      }
      
     }

    }


    타이핑 하기 귀찮으신분들을 위한 -_-;; (길지 않으니 타이핑 해보는걸 추천 !!^^;;)

    Queue.txt


    소스파일 입니다.(주석도 있습니다 !! ^^;;




    휴 .. 그럼 실제 구동화면을 한번 볼까요??




    위 이미지를 보시면 처음 입력된 "머루" ~ "달머루" 까지 입력한 순서대로 출력이 되는걸 확인할수 있습니다.

    지금까지 Stack 과 Queue 이 두개의 클래스에 대해 알아봤는데요 ~

    솔직한 말로 .. 이 두개의 클래스는 거의 사용되지 않습니다 -ㅅ-;;

    그렇다고 모르고 넘어가서도 안되는 뭐 그런 클래스에요 !!!

    다음엔 Vector 클래스 구조 에 대해 설명할껀데요. 요놈 때문에 Stack 과 Queue 를 알아둬야 한다는점 !!

    Vector 클래스는 난이도가 살짝? 있어용 !!




    원본 및 출처 - 클릭하세요 JAVA 2 JDK 5.0 (대림출판사)