C#でスタックの先頭(一番上)の要素を取得する方法【Peek()メソッド】
C#のStack<T>クラスでは、スタックの一番上(先頭)にあるオブジェクトを取得するためにPeek()メソッドを使用します。このメソッドは、スタックから要素を削除することなく、最上位の要素だけを返します。
Peek()メソッドとは
Peek()は、スタックの先頭にある要素を参照するためのメソッドです。似たメソッドにPop()がありますが、こちらは先頭の要素を取り出して削除するのに対し、Peek()は要素を削除せずにそのまま残します。スタックの中身を確認したいだけの場合は、Peek()を使うのが適切です。
コード例1:文字列のスタック
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
Stack<string> stack = new Stack<string>();
stack.Push("A");
stack.Push("B");
stack.Push("C");
stack.Push("D");
stack.Push("E");
stack.Push("F");
stack.Push("G");
stack.Push("H");
stack.Push("I");
stack.Push("J");
Console.WriteLine("要素数 = " + stack.Count);
Console.WriteLine("スタックの先頭の要素 = " + stack.Peek());
}
}
実行結果
要素数 = 10 スタックの先頭の要素 = J
最後にPushした「J」がスタックの一番上に位置しているため、Peek()は「J」を返します。スタックが後入れ先出し(LIFO:Last In First Out)の構造を持つことがわかります。
コード例2:整数のスタック
次に、int型のスタックでPeek()を複数回呼び出す例を見てみましょう。
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
Stack<int> stack = new Stack<int>();
stack.Push(10);
stack.Push(20);
stack.Push(30);
stack.Push(40);
stack.Push(50);
stack.Push(60);
stack.Push(70);
stack.Push(80);
stack.Push(90);
stack.Push(100);
Console.WriteLine("要素数 = " + stack.Count);
Console.WriteLine("スタックの先頭の要素 = " + stack.Peek());
Console.WriteLine("スタックの先頭の要素 = " + stack.Peek());
}
}
実行結果
要素数 = 10 スタックの先頭の要素 = 100 スタックの先頭の要素 = 100
Peek()を2回呼び出しても、どちらも「100」が返され、要素数は10のまま変わりません。これは、Peek()が要素を削除しないためです。もしPop()を使っていた場合は、呼び出すたびに先頭の要素が取り除かれ、要素数が減っていきます。
まとめ
- スタックの一番上の要素を取得するには
Peek()メソッドを使う Peek()は要素を削除せずに参照できる- 要素を取り出して削除したい場合は
Pop()を使用する - 空のスタックに対して
Peek()やPop()を呼び出すとInvalidOperationExceptionが発生するため、事前にCountプロパティで要素数を確認しておくと安全
-
【Android】アクティビティスタックから最上位のアクティビティ名を取得する方法
この記事では、Androidアプリ開発においてアクティビティスタックの最上位(トップ)にあるアクティビティ名を取得する方法を、サンプルコード付きの手順で解説します。手順1:新規プロジェクトを作成するまず、Android Studioを開き、メニューから [File] → [New Project] を選択して、必要な項目を入力し、新しいプロジェクトを作成しましょう。手順2:レイアウトファイル(activity_main.xml)を編集する次に、res/layout/activity_main.xml に以下のコードを記述します。<?xml version="1.0"
-
Tkinterキャンバスでオブジェクトの座標を取得する方法を解説
TkinterのCanvas(キャンバス)ウィジェットは、アプリケーションにGUI機能を提供する強力なツールです。図形の描画やオブジェクトのアニメーション、キャンバス上の既存アイテムの設定などに活用できます。キャンバス上に図形を作成する際は、Canvasアイテムコンストラクタに対して図形のサイズと座標を指定する必要があります。そして、すでに配置したアイテムの座標を後から取得したい場合には、coords(item)メソッドを使用します。このメソッドは、キャンバスウィジェット上の図形の座標をリスト形式で返します。coords()メソッドの基本的な使い方以下のサンプルコードでは、キャンバス上に楕円を