C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のStackクラスの使い方を解説!主要メソッドとサンプルコード付き

C#におけるStackクラスは、オブジェクトを「後入れ先出し(LIFO:Last-In, First-Out)」方式で管理するコレクションを表すために使用されます。最後に追加した要素が最初に取り出される仕組みで、本を積み重ねたスタックのように、一番上に置いた本から順に取り出すイメージです。

Stackクラスの主なメソッド

Stackクラスには、要素の操作に便利なメソッドが多数用意されています。以下に代表的なメソッドをまとめました。

No.メソッドと説明
1public virtual void Clear();
スタックからすべての要素を削除します。
2public virtual bool Contains(object obj);
指定した要素がスタック内に存在するかどうかを判定します。
3public virtual object Peek();
スタックの先頭にあるオブジェクトを、削除せずに返します。
4public virtual object Pop();
スタックの先頭にあるオブジェクトを削除して返します。
5public virtual void Push(object obj);
スタックの先頭にオブジェクトを挿入します。
6public virtual object[] ToArray();
スタックの内容を新しい配列にコピーします。

Stackクラスのプロパティ

Stackクラスには以下のプロパティがあります。

  • Count: スタック内に含まれる要素の数を取得します。

Push()とPop()を使ったサンプルコード

ここでは、Stackクラスの基本的な使い方として、Push()メソッドで要素を追加し、Pop()メソッドで要素を取り出す例を紹介します。

サンプルプログラム

using System;
using System.Collections;

namespace CollectionsApplication {
    class Program {
        static void Main(string[] args) {
            Stack st = new Stack();

            st.Push('A');
            st.Push('B');
            st.Push('C');
            st.Push('D');

            Console.WriteLine("Current stack: ");
            foreach (char c in st) {
                Console.Write(c + " ");
            }
            Console.WriteLine();

            st.Push('P');
            st.Push('Q');
            Console.WriteLine("The next poppable value in stack: {0}", st.Peek());
            Console.WriteLine("Current stack: ");

            foreach (char c in st) {
                Console.Write(c + " ");
            }

            Console.WriteLine();

            Console.WriteLine("Removing values....");
            st.Pop();
            st.Pop();
            st.Pop();

            Console.WriteLine("Current stack: ");
            foreach (char c in st) {
                Console.Write(c + " ");
            }
        }
    }
}

実行結果

Current stack:
D C B A
The next poppable value in stack: Q
Current stack:
Q P D C B A
Removing values....
Current stack:
C B A

コードのポイント解説

  • Push(): 要素をスタックの先頭(一番上)に追加します。この例では「A」「B」「C」「D」の順に追加しています。
  • Peek(): 先頭の要素を確認するだけで、実際には削除されません。実行結果では最後に追加した「Q」が返されています。
  • Pop(): 先頭の要素を取り出して削除します。「Q」「P」「D」の順に3回Popしているため、残りは「C B A」となります。

LIFO構造の特性を理解すると、Undo機能やブラウザの履歴管理など、実務でもStackクラスが活躍する場面が多くあることがわかります。

  1. Androidでシングルトンクラスを使う方法をサンプルコード付きで解説

    シングルトンデザインパターンとは?実装例に入る前に、まず「シングルトンデザインパターン」についておさらいしておきましょう。シングルトン(Singleton)とは、あるクラスのインスタンス生成をアプリケーション全体で1つだけに制限するデザインパターンです。主な用途としては、同時実行(並行処理)の制御や、アプリケーションがデータストアへアクセスするための中心的なアクセスポイントの作成などが挙げられます。この記事では、Androidアプリでシングルトンクラスを実際に使う方法を、ステップごとのサンプルコードとともに解説します。手順1:新規プロジェクトを作成するAndroid StudioでFile →

  2. AndroidのListViewでVectorクラスを使用する方法【初心者向け解説】

    AndroidのListViewでVectorクラスを活用する方法 この記事では、AndroidアプリのListView(リストビュー)において、JavaのVectorクラスを使用してデータを管理・表示する方法を、実際のコード例とともに段階的に解説します。ユーザーが入力した名前をVectorに保存し、「保存」ボタンでリストに追加、「更新」ボタンでListViewを再描画するというシンプルなサンプルアプリを作成します。 手順1:新規プロジェクトを作成する まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目を