C#のQueueで先頭のオブジェクトを取得する方法 – Peekメソッドの使い方
C#のQueue<T>クラスでは、キューの先頭にあるオブジェクトを取得するためにPeek()メソッドを使用します。Peekメソッドは要素を削除せずに先頭の要素だけを返すため、キューの状態を変更することなく中身を確認できるのが特徴です。
Peekメソッドの基本的な使い方
以下は、Queueに文字列を追加し、Peekメソッドで先頭の要素を取得するサンプルコードです。
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
Queue<string> queue = new Queue<string>();
queue.Enqueue("A");
queue.Enqueue("B");
queue.Enqueue("C");
queue.Enqueue("D");
queue.Enqueue("E");
queue.Enqueue("F");
queue.Enqueue("G");
Console.WriteLine("要素数 = " + queue.Count);
Console.WriteLine("キューの先頭の要素 = " + queue.Peek());
}
}実行結果
要素数 = 7 キューの先頭の要素 = A
Enqueueメソッドで「A」から「G」までの7つの要素を追加した後、Countプロパティで要素数を確認し、Peekメソッドで先頭の要素「A」を取得しています。最初に追加した要素がキューの先頭に位置していることがわかります。
要素を追加しても先頭は変わらない
次の例では、Peekメソッドを実行した後にさらに要素を追加しています。新しい要素はキューの末尾に追加されるため、先頭の要素は変わりません。
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
Queue<string> queue = new Queue<string>();
queue.Enqueue("A");
queue.Enqueue("B");
queue.Enqueue("C");
queue.Enqueue("D");
queue.Enqueue("E");
queue.Enqueue("F");
queue.Enqueue("G");
Console.WriteLine("要素数 = " + queue.Count);
Console.WriteLine("キューの先頭の要素 = " + queue.Peek());
queue.Enqueue("H");
queue.Enqueue("I");
queue.Enqueue("J");
Console.WriteLine("要素数 = " + queue.Count);
Console.WriteLine("キューの先頭の要素 = " + queue.Peek());
}
}実行結果
要素数 = 7 キューの先頭の要素 = A 要素数 = 10 キューの先頭の要素 = A
このように、「H」「I」「J」を追加して要素数が10になっても、Peekメソッドが返す先頭の要素は依然として「A」です。これは、QueueがFIFO(First In First Out:先入れ先出し)方式で動作しており、新しく追加された要素は常に末尾に配置されるためです。
PeekとDequeueの違い
似たようなメソッドにDequeueがありますが、両者には重要な違いがあります。
- Peek():先頭の要素を取得するだけで、キューからは削除しない
- Dequeue():先頭の要素を取得すると同時にキューから削除する
キューの中身を確認したいだけであればPeekを使い、実際に要素を取り出して処理する場合はDequeueを使うのが基本です。また、空のキューに対してPeekやDequeueを呼び出すとInvalidOperationExceptionがスローされるため、呼び出し前にCountプロパティで要素の存在を確認しておくと安全です。
-
Tkinterキャンバスでオブジェクトの座標を取得する方法を解説
TkinterのCanvas(キャンバス)ウィジェットは、アプリケーションにGUI機能を提供する強力なツールです。図形の描画やオブジェクトのアニメーション、キャンバス上の既存アイテムの設定などに活用できます。キャンバス上に図形を作成する際は、Canvasアイテムコンストラクタに対して図形のサイズと座標を指定する必要があります。そして、すでに配置したアイテムの座標を後から取得したい場合には、coords(item)メソッドを使用します。このメソッドは、キャンバスウィジェット上の図形の座標をリスト形式で返します。coords()メソッドの基本的な使い方以下のサンプルコードでは、キャンバス上に楕円を
-
Pythonでキュー(Queue)を実装するプログラムの書き方
Pythonでキュー(Queue)を実装するには、専用のクラスを作成し、要素を追加・削除するためのメソッドを定義します。その後、クラスのインスタンスを生成し、メソッドを呼び出すことで各種操作を行い、結果をコンソールに表示します。キューは「先入れ先出し(FIFO:First In First Out)」と呼ばれるデータ構造で、最初に追加した要素が最初に取り出されるという特徴があります。タスク管理やバッファ処理など、さまざまな場面で活用される基本的な構造です。以下に、Pythonでのキューの実装例を示します。サンプルコードclass Queue_struct: &