<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Java `Stack`類 > 原文: [https://www.programiz.com/java-programming/stack](https://www.programiz.com/java-programming/stack) #### 在本教程中,我們將借助示例學習 Java `Stack`類及其方法。 Java 集合框架具有一個名為`Stack`的類,該類提供棧數據結構的功能。 `Stack`類擴展了`Vector`類。 ![Java Stack class extending the Vector class](https://img.kancloud.cn/1c/c1/1cc10ba9cd65ce4bd91eed135a7fb25e_410x744.png "Java Stack Class") * * * ## `Stack`實現 在棧中,元素以**后進先出**的方式存儲和訪問。 即,元素被添加到棧的頂部,并從棧的頂部移除。 ![Working of stack data structure](https://img.kancloud.cn/f2/ec/f2eccd7f4258e5a7c8ffc07395b60b1a_738x768.png "Working of stack data structure") * * * ## 創建`Stack` 為了創建棧,我們必須首先導入`java.util.Stack`包。 導入包后,就可以使用 Java 創建棧。 ```java Stack<Type> stacks = new Stack<>(); ``` 此處,`Type`表示棧的類型。 例如, ```java // Create Integer type stack Stack<Integer> stacks = new Stack<>(); // Create String type stack Stack<String> stacks = new Stack<>(); ``` * * * ## `Stack`方法 由于`Stack`擴展了`Vector`類,因此它繼承了所有方法`Vector`。 要了解不同的`Vector`方法,請訪問 [Java Vector Class](/java-programming/vector "Java Vector Class") 。 除了這些方法之外,`Stack`類還包括 5 個與`Vector`區別的方法。 * * * ### `push()`方法 要將元素添加到棧的頂部,我們使用`push()`方法。 例如, ```java 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); } } ``` **輸出** ```java Stack: [Dog, Horse, Cat] ``` * * * ### `pop()`方法 要從棧頂部刪除元素,我們使用`pop()`方法。 例如, ```java 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); } } ``` **輸出**: ```java Initial Stack: [Dog, Horse, Cat] Removed Element: Cat ``` * * * ### `peek()`方法 `peek()`方法從棧頂部返回一個對象。 例如, ```java 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); } } ``` **輸出**: ```java Stack: [Dog, Horse, Cat] Element at top: Cat ``` * * * ### `search()`方法 要搜索棧中的元素,我們使用`search()`方法。 它從棧頂部返回元素的位置。 例如, ```java 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); } } ``` **輸出**: ```java Stack: [Dog, Horse, Cat] Position of Horse: 2 ``` * * * ### `empty()`方法 要檢查棧是否為空,我們使用`empty()`方法。 例如, ```java 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); } } ``` **輸出**: ```java Stack: [Dog, Horse, Cat] Is the stack empty? false ``` * * * ## 使用`ArrayDeque`而不是`Stack` `Stack`類提供棧數據結構的直接實現。 但是,建議不要使用它。 而是使用`ArrayDeque`類(實現`Deque`接口)在 Java 中實現棧數據結構。 要了解更多信息,請訪問: * [Java `ArrayDeque`](/java-programming/arraydeque "Java ArrayDeque Class") * [為什么在棧上使用雙端隊列?](https://stackoverflow.com/questions/12524826/why-should-i-use-deque-over-stack)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看