출처 : http://qortn.tistory.com/225


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);
  }
  
 }

}


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


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




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




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

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

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

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

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

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

'자바 > 자바팁' 카테고리의 다른 글

java로 implode 구현하기  (1) 2015.02.28
서버에 JNDI 설정 세팅하기  (0) 2015.01.03
레퍼런스까지 같이 복사하는 Clone 함수 사용법  (0) 2013.06.27
svn 관련 팁  (0) 2012.04.05
NIO 간단한 파일읽기 예제  (0) 2012.01.19

+ Recent posts