C# 入門 & 実践 / C sharp
4-12. [ ジェネリック/コレクション ] 6. Queue / Stack クラスを使う。
Queue
FIFO - first in first out
オブジェクトの先入れ先出しコレクションを表します。
Stack
LIFO - last in first out
後入れ先出しコレクションです。
ひとまず単純に使ってみます。
( * マルチスレッドで、Queueを利用したりする場合は、後ほどマルチスレッドで)
class BbNumber
{
private string name = "";
private int number = 0;
public BbNumber(string name, int number)
{
this.name = name;
this.number = number;
}
public void Print()
{
Console.WriteLine("{0} : {1}",number,name);
}
}
class Tester
{
static void Main()
{
Queue<BbNumber> bbq = new Queue<BbNumber>();
// Queueへオブジェクトのインスタンスを入れていきます。
bbq.Enqueue(new BbNumber("Rooney" , 8));
bbq.Enqueue(new BbNumber("Saha", 10));
bbq.Enqueue(new BbNumber("Ronaldo", 7));
bbq.Enqueue(new BbNumber("Neville", 2));
bbq.Enqueue(new BbNumber("Ferdinand", 5));
bbq.Enqueue(new BbNumber("Van der Sar", 1));
//
Console.WriteLine("+++ Queue +++");
// 何個入っているか?
Console.WriteLine("Queue.Count : {0}", bbq.Count);
// 一つ取り出してみます。
BbNumber bx = bbq.Dequeue();
// 最初に入れたものが出てきたはずです。
bx.Print();
// 何個入っているか?
Console.WriteLine("Queue.Count : {0}", bbq.Count);
// bbqが空になるまで、取り出して表示してみます。
while (bbq.Count > 0)
{
bx = bbq.Dequeue();
bx.Print();
}
Stack<BbNumber> bbstack = new Stack<BbNumber>();
// Stack へオブジェクトのインスタンスを入れていきます。
bbstack.Push(new BbNumber("Rooney", 8));
bbstack.Push(new BbNumber("Saha", 10));
bbstack.Push(new BbNumber("Ronaldo", 7));
bbstack.Push(new BbNumber("Neville", 2));
bbstack.Push(new BbNumber("Ferdinand", 5));
bbstack.Push(new BbNumber("Van der Sar", 1));
//
Console.WriteLine("+++ Stack +++");
// 何個入っているか?
Console.WriteLine("Stack.Count : {0}", bbstack.Count);
// 一つ取り出してみます。
bx = bbstack.Pop();
// 最後に入れたものが出てきたはずです。
bx.Print();
// 何個入っているか?
Console.WriteLine("Stack.Count : {0}", bbstack.Count);
// bbstackが空になるまで、取り出して表示してみます。
while (bbstack.Count > 0)
{
bx = bbstack.Pop();
bx.Print();
}
}
}
+++ Queue +++
Queue.Count : 6
8 : Rooney
Queue.Count : 5
10 : Saha
7 : Ronaldo
2 : Neville
5 : Ferdinand
1 : Van der Sar
+++ Stack +++
Stack.Count : 6
1 : Van der Sar
Stack.Count : 5
5 : Ferdinand
2 : Neville
7 : Ronaldo
10 : Saha
8 : Rooney
このように
Queueを利用した場合、最初に入れたものから返ってきます。
Stackを利用した場合、最後に入れたものから返ってきます。
4-11. [ ジェネリック/コレクション ] 5. IComparable インターフェイスの実装!独自のクラスをSort! «
4. C# 入門 Level 2 »
4-13. [ ジェネリック/コレクション ] 7.Dictionary クラス
C# 入門 & 実践 / C sharp