Java スタック クラス
Java スタック クラス
このチュートリアルでは、例を使って Java Stack クラスとそのメソッドについて学びます。
Java コレクション フレームワークには、Stack
という名前のクラスがあります。 スタック データ構造の機能を提供します。
Stack
クラスは Vector
を拡張します クラス。
スタックの実装
スタックでは、要素は 後入れ先出し で保存およびアクセスされます 方法。つまり、要素はスタックの一番上に追加され、スタックの一番上から削除されます。
スタックの作成
スタックを作成するには、java.util.Stack
をインポートする必要があります 最初にパッケージ。パッケージをインポートしたら、Java でスタックを作成する方法を次に示します。
Stack<Type> stacks = new Stack<>();
ここでは、Type
スタックのタイプを示します。たとえば、
// Create Integer type stack
Stack<Integer> stacks = new Stack<>();
// Create String type stack
Stack<String> stacks = new Stack<>();
スタック メソッド
Stack
以降 Vector
を拡張します クラス、それはすべてのメソッド Vector
を継承します .さまざまな Vector
について学ぶ メソッドについては、Java ベクター クラスにアクセスしてください。
これらのメソッドに加えて、Stack
クラスには、Vector
と区別する 5 つのメソッドが含まれています .
push() メソッド
要素をスタックの一番上に追加するには、push()
を使用します 方法。たとえば、
import java.util.Stack;
class Main {
public static void main(String[] args) {
Stack<String> animals= new Stack<>();
// Add elements to Stack
animals.push("Dog");
animals.push("Horse");
animals.push("Cat");
System.out.println("Stack: " + animals);
}
}
出力
Stack: [Dog, Horse, Cat]
pop() メソッド
スタックの一番上から要素を削除するには、 pop()
を使用します 方法。たとえば、
import java.util.Stack;
class Main {
public static void main(String[] args) {
Stack<String> animals= new Stack<>();
// Add elements to Stack
animals.push("Dog");
animals.push("Horse");
animals.push("Cat");
System.out.println("Initial Stack: " + animals);
// Remove element stacks
String element = animals.pop();
System.out.println("Removed Element: " + element);
}
}
出力
Initial Stack: [Dog, Horse, Cat] Removed Element: Cat
peek() メソッド
peek()
メソッドはスタックの一番上からオブジェクトを返します。たとえば、
import java.util.Stack;
class Main {
public static void main(String[] args) {
Stack<String> animals= new Stack<>();
// Add elements to Stack
animals.push("Dog");
animals.push("Horse");
animals.push("Cat");
System.out.println("Stack: " + animals);
// Access element from the top
String element = animals.peek();
System.out.println("Element at top: " + element);
}
}
出力
Stack: [Dog, Horse, Cat] Element at top: Cat
search() メソッド
スタック内の要素を検索するには、search()
を使用します 方法。スタックの一番上から要素の位置を返します。たとえば、
import java.util.Stack;
class Main {
public static void main(String[] args) {
Stack<String> animals= new Stack<>();
// Add elements to Stack
animals.push("Dog");
animals.push("Horse");
animals.push("Cat");
System.out.println("Stack: " + animals);
// Search an element
int position = animals.search("Horse");
System.out.println("Position of Horse: " + position);
}
}
出力
Stack: [Dog, Horse, Cat] Position of Horse: 2
empty() メソッド
スタックが空かどうかを確認するには、empty()
を使用します 方法。たとえば、
import java.util.Stack;
class Main {
public static void main(String[] args) {
Stack<String> animals= new Stack<>();
// Add elements to Stack
animals.push("Dog");
animals.push("Horse");
animals.push("Cat");
System.out.println("Stack: " + animals);
// Check if stack is empty
boolean result = animals.empty();
System.out.println("Is the stack empty? " + result);
}
}
出力
Stack: [Dog, Horse, Cat] Is the stack empty? false
Stack の代わりに ArrayDeque を使用する
Stack
クラスは、スタック データ構造の直接実装を提供します。ただし、使用しないことをお勧めします。代わりに、ArrayDeque
を使用してください クラス (Deque
を実装します) インターフェイス) を Java でスタック データ構造を実装します。
詳細については、こちらをご覧ください:
- Java ArrayDeque
- Deque over Stack を使用する理由
Java