이전 글에서 C# 컬렉션으로 ArrayList에 대해 알아보았습니다. 이번에는 Queue에 대해 알아보겠습니다. C#은 객체 지향 언어로서 모든 요소가 객체로 구성됩니다. 객체는 이벤트, 속성, 메서드를 가지며 이를 사용하여 프로그래밍을 하게 됩니다.
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
'Programming > C#' 카테고리의 다른 글
C# 컬렉션 알아보기 - Hashtable & 메서드 (0) | 2021.10.15 |
---|---|
C# 컬렉션 알아보기 - Stack & 메서드 (0) | 2021.10.15 |
C# 컬렉션 알아보기 - ArrayList & 메서드 (0) | 2021.10.14 |
C# 가변 배열 선언, 생성 및 초기화 (0) | 2021.10.09 |
C# 이차원 배열 (0) | 2021.10.08 |