출처 : http://qortn.tistory.com/225
Java 예제 - Queue(큐) Class
지난번엔 Stack(스택) 클레스에 대해 알아봤습니다. 이번엔 Stack class 와는 반대 개념인 Queue(큐) 클래스에 대해 알아보겠습니당!!
위의 그림에서 보듯이 요소를 데어티 구조의 양쪽 단에서만 저장 / 접근 할수 있는 컬렉션 입니다.
FIFO ( First - In - First - Out ) 구조로 위아래 양쪽 구멍이 뚫려 있어 쉽게 말해 "밑 빠진 독" 이라고 볼수 있습니다(물론 줄줄 새진 않죠 ^^;;)
이렇게 들어오는곳과 나오는곳이 다르기 때문에 Queue(큐)에 먼저 들어간 데이터가 가장 먼저 나오게 됩니다^^
Queue(큐) 클래스 인스턴스를 생성하기 위해선 아래와 같이 "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 |