<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 棧實現 > 原文: [https://howtodoinjava.com/data-structure/java-stack-implementation-array/](https://howtodoinjava.com/data-structure/java-stack-implementation-array/) 本教程給出了**使用數組**實現[棧](https://en.wikipedia.org/wiki/Stack_(abstract_data_type))數據結構的示例。 棧提供了將新對象放入棧(方法`push()`)并從棧中獲取對象(方法`pop()`)。 棧根據后進先出(LIFO)返回對象。 請注意,JDK 提供了默認的 Java 棧實現作為類`java.util.Stack`。 適用于所有棧實現的兩個強制操作是: * **`push()`**:將數據項放置在棧指針指向的位置。 * **`pop()`**:在其中刪除數據項并從棧指針指向的位置返回該數據項。 某些嚴重依賴棧的環境可能會根據要求提供其他操作。 Stack 最常見的用法是表達式求值和語法解析。 您也可以在文本處理器的撤消/重做操作中找到它們。 ## Java 棧實現源代碼 下面的程序是棧數據結構的示例實現。 可以根據需要隨意修改源代碼。 ```java package com.howtodoinjava.datastructure; import java.util.Arrays; public class CustomStack <E> { private int size = 0; private static final int DEFAULT_CAPACITY = 10; private Object elements[]; public CustomStack() { elements = new Object[DEFAULT_CAPACITY]; } public void push(E e) { if (size == elements.length) { ensureCapacity(); } elements[size++] = e; } @SuppressWarnings("unchecked") public E pop() { E e = (E) elements[--size]; elements[size] = null; return e; } private void ensureCapacity() { int newSize = elements.length * 2; elements = Arrays.copyOf(elements, newSize); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append('['); for(int i = 0; i < size ;i++) { sb.append(elements[i].toString()); if(i < size-1){ sb.append(","); } } sb.append(']'); return sb.toString(); } } ``` 現在,通過從棧中推送和彈出一些項目來測試我們的棧實現。 ```java public class Main { public static void main(String[] args) { CustomStack<Integer> stack = new CustomStack<>(); stack.push(10); stack.push(20); stack.push(30); stack.push(40); System.out.println(stack); System.out.println( stack.pop() ); System.out.println( stack.pop() ); System.out.println( stack.pop() ); System.out.println( stack ); } } ``` ```java Output: [10,20,30,40] 40 30 20 [10] ``` 這就是有關 **Java 棧實現**示例的簡單但重要的概念。 學習愉快!
                  <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>

                              哎呀哎呀视频在线观看