본문 바로가기

Programming/C#

C# 컬렉션 알아보기 - Queue & 메서드

반응형

이전 글에서 C# 컬렉션으로 ArrayList에 대해 알아보았습니다. 이번에는 Queue에 대해 알아보겠습니다. C#은 객체 지향 언어로서 모든 요소가 객체로 구성됩니다. 객체는 이벤트, 속성, 메서드를 가지며 이를 사용하여 프로그래밍을 하게 됩니다.

 

C# 컬렉션 알아보기 - ArrayList & 메서드

 

C# 컬렉션 알아보기 - ArrayList & 메서드

앞에서 알아본 배열은 크기를 미리 지정해야만 사용할 수 있었습니다. 비록 가변 배열을 사용하므로 약간에 유동성을 주었지만 행의 크기는 결정한 상태에서 사용해야 했습니다. 하지만, 컬렉

mr-johndoe.tistory.com

 

 

 

 

1. Queue

 배열은 인덱스 번호를 이용하여 저장된 데이터를 원하는 대로 입출력이 가능하였습니다. 하지만 Queue는 이와는 달리 제일 처음에 있는 데이터를 출력할 수 있으며 입력을 하면 가장 마지막 데이터로 입력이 됩니다. 

유명한 식당에서 식사를 하기 위해 줄을 섰을 때 모습을 상상하시면 식당에 자리가 나면 식당 입구의 제일 앞에 있는 사람이 입장을 합니다. 그리고 새로운 사람이 식당에 오면 줄의 맨 뒤에 서게 됩니다.

 

이와 같이 Queue의 데이터 입출력 방식을 영어로 'First In First Out'이라 하며 이를 줄여서 FIFO 구조라고 합니다.

 

Queue를 선언할 때도 ArrayList와 마찬가지로 new를 사용합니다.

 

  Queue 이름 = new Queue( );

 

Queue의 데이터는 ArrayList와 마찬가지로 모든 데이터형을 받아들일 수 있는데, Queue 역시 데이터를 Object형으로 관리하기 때문입니다.

 

2. Queue의 메서드

 2.1 Enqueue

    Enqueue는 Queue에 데이터를 입력할 때 사용하는 메서드입니다. Enqueue 메서드를 사용하여 Queue에 데이터를 입력하게 되면 입력한 데이터는 Queue의 제일 마지막 메모리에 입력됩니다.

 

 2.2 Dequeue

    Dequeue는 Queue에서 데이터를 출력할 때 사용하는 메서드입니다. Dequeue 메서드를 사용하여 Queue에서 데이터를 출력하게 되면 Queue의 제일 첫 번째 메모리에 입력되어 있는 데이터를 추출하고 그 다음 메모리에 입력되어 있는 데이터가 Queue의 첫번째 데이터가 됩니다.

 

 

 

3. 예제를 통해 Queue 확인

Visual Studio를 여시고 C# 콘솔 애플리케이션을 생성하세요. 출력된 코드 창에 다음과 같이 입력합니다.

 

   using System;

   using System.Collections;

 

   namespace UsingQueue

   {

 

      class Program

     {

 

         static void Main(string[] args)

         {

           Queue que = new Queue();

           que.Enqueue(1);

           que.Enqueue(2);

           que.Enqueue(3);

 

           foreach(Object obj in que)

           {

               Console.Write(obj);

            }

           Console.Write('\n');

 

           que.Dequeue();

 

           foreach(Object obj in que)

           {

              Console.Write(obj);

           }

           Console.Write('\n');

         }

 

     }

 

   }

 

컬렉션을 사용하기 위해 using System.Collections;을 선언해 주었습니다.

 

Queue que = new Queue();

     => que라는 이름으로 new를 사용하여 Queue를 생성하였습니다.

 

que.Enqueue(1);

que.Enqueue(2);

que.Enqueue(3);

     => 생성한 que에 차례대로 1, 2, 3이라는 값을 입력하였습니다.

          다음 foreach문을 사용하여 que의 데이터를 화면에 출력하게 하였습니다.

 

que.Dequeue();

     => 생성한 que의 데이터를 하나 추출하였습니다. 제일 첫 번째 데이터인 1이 추출됩니다.

          다음 foreach문을 사용하여 que의 데이터를 화면에 출력하게 하였습니다.

 

예제를 실행하면 다음과 같이 화면에 출력됩니다.

 

123

23

 

반응형