컬렉션11 : 큐(Queue) 클래스 :: C# 인트로[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

C# 인트로
[1]
등록일:2008-03-27 20:00:25 (0%)
작성자:갤러리정
제목:컬렉션11 : 큐(Queue) 클래스

7.11 (Queue) 클래스

 

Queue 클래스는 선입선출구조(FIFO : First-In, First-Out)의 컬렉션입니다. 제일 처음 삽입된 데이터가 먼저 추출된다는 의미의 큐(Queue)는 데이터를 삽입하는 Enqueue(), 데이터를 추출하는 Dequeue(), 추출한 데이터를 삭제하지 않고 데이터만 가져오는 Peek() 3개의 메서드를 주로 사용합니다. 다음은 Queue의 프로토타입입니다.

 

Queue 클래스의 프로토타입

public class Queue : ICollection, IEnumerable, ICloneable

 

Queue 클래스의 특징

선입선출(First-In-First-Out) 컬렉션 클래스

Enqueue() 메서드는 Queue의 첫위치에 요소를 삽입

Dequeue() 메서드는 Queue의 마지막 위치의 요소를 삭제

Peek() 메서드는 Queue의 마지막 위치의 요소를 제거하지 않고 반환.

 

 

&

QueueTest.cs

Ü Queue를 테스트하는 예제

using System;
using System.Collections;

public class 
QueueTest{
  
static void 
Main(){
    Queue que = 
new 
Queue();
    que.Enqueue(
"Hi"
);
    que.Enqueue(
5
);
    que.Enqueue(
500
);
    que.Enqueue(
"Hello"
);    
    Print(
"1. Queue
 목록:", que );
    object obj = que.Dequeue();  Console.WriteLine(
"2. Dequeue:{0}"
,  obj);
    obj = que.Dequeue();    Console.WriteLine(
"3. Dequeue:{0}"
,  obj);
    Print( 
"4. 
두개를 Dequeue 후의 목록:", que );
    obj = que.Peek();      Console.WriteLine(
"5. Peek:{0}"
,  obj);
    Print( 
"6. Peek
 후의 Queue 목록:", que );
  } 
//main

  
public static void 
Print(string info, IEnumerable myCollection ){
    Console.Write(info+
"\n\t"
);
    IEnumerator myEnumerator = myCollection.GetEnumerator();
    
while 
( myEnumerator.MoveNext() )
      Console.Write( 
"{0}, "
,myEnumerator.Current );
    Console.WriteLine();
  }
//class

C:\C#Example\07>csc QueueTest.cs

C:\C#Example\07>QueueTest

1. Queue 목록:

        Hi, 5, 500, Hello,

2. Dequeue:Hi

3. Dequeue:5

4. 두개를 Dequeue 후의 목록:

        500, Hello,

5. Peek:500

6. Peek 후의 Queue 목록:

        500, Hello,

 

Queue 객체를 생성한 후 Enqueue() 메서드를 이용하여 큐에 데이터를 삽입하고 있습니다.

 

Queue que = new Queue();

que.Enqueue("Hi");

que.Enqueue(5);

que.Enqueue(500);

que.Enqueue("Hello");          

 

Dequeue() 메서드를 호출하여 객체를 반환하고 Queue에서 데이터를 제거하고 있습니다. 이 때 반환되는 데이터형은 object형입니다.

 

object obj = que.Dequeue();

obj = que.Dequeue();

 

Dequeue()는 데이터를 추출한 뒤 데이터를 제거하지만 Peek() 메서드데이터만을 반환하고 데이터는 그대로 놓아 둡니다.

 

obj = que.Peek();    

 

Queue 구조의 가장 큰 특징은 바로 선입선출(先入先出)입니다. 입력할 때는 Enqueue() 메서드를 사용하며 추출할 때는 Dequeue() 메서드를 이용합니다. 추출하기 전에 데이터만을 가져오고자 할 때는 Peek() 메서드를 이용하게 됩니다.
[본문링크] 컬렉션11 : 큐(Queue) 클래스
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=3048
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.