English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
このチュートリアルでは、サンプルを使用してJava Stackクラスおよびそのメソッドを学びます。
Javaコレクションフレームワークには、Stackと呼ばれるクラスがあり、スタックデータ構造の機能を提供しています。
このStackクラスはVectorクラスを継承しています。
スタックでは、要素は後入れ先出しの方法でデータを保存し、アクセスします。つまり、要素はスタックの先頭に追加され、先頭から削除されます。
スタックを作成するために、まずjava.util.Stackパッケージをインポートする必要があります。パッケージをインポートすると、Javaでスタックを作成できます。
Stack<Type> stacks = new Stack<>();
在此,Type指示堆栈的类型。例如,
//创建整数类型堆栈 Stack<Integer> stacks = new Stack<>(); //创建字符串类型堆栈 Stack<String> stacks = new Stack<>();
由于Stack继承了Vector类,因此它继承了所有方法Vector。要了解不同的Vector方法,请访问Java Vector Class。
除了这些方法之外,Stack类还包括5个与Vector区别开来的方法。
要将元素添加到堆栈的顶部,我们使用push()方法。例如,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //要素をスタックに追加する animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); } }
出力結果
Stack: [Dog, Horse, Cat]
要从堆栈顶部删除元素,我们使用pop()方法。例如,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //将元素添加到 Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("初始堆栈: " ); + animals); //删除堆栈元素,后进先出 String element = animals.pop(); System.out.println("删除元素: " ); + element); } }
出力結果
初始堆栈: [Dog, Horse, Cat] 删除元素: Cat
该peek()方法从堆栈顶部返回一个对象。例如,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //要素をスタックに追加する animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); //从顶部访问元素,后进先出的原则 String element = animals.peek(); System.out.println("顶部元素: " ); + element); } }
出力結果
Stack: [Dog, Horse, Cat] 顶部元素: Cat
要搜索堆栈中的元素,我们使用search()方法。它从堆栈的顶部返回元素的位置。例如,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //要素をスタックに追加する animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); //搜索元素 int position = animals.search("Horse"); System.out.println("元素Horse的位置: " ); + position); } }
出力結果
Stack: [Dog, Horse, Cat] 元素Horse的位置: 2
要检查堆栈是否为空,我们使用empty()方法。例如,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //要素をスタックに追加する animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); //スタックが空かどうかを確認する boolean result = animals.empty(); System.out.println("スタックは空ですか? " + result); } }
出力結果
Stack: [Dog, Horse, Cat] スタックは空ですか? false
このStackクラスは、直接スタックデータ構造を実行するデータ構造を提供します。ただし、使用することはお勧めしません。代わりに、Javaでスタックデータ構造を実現するためにDequeインターフェースを実装するArrayDequeクラスを使用してください。
さらに詳しい情報については、以下のURLにアクセスしてください:Java ArrayDeque