首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 泛型實作 Stack 資料結構教學範例

     編輯:Java 相關知識

前言

Java Collections Framework 已內建 Stack<E>,但為了理解泛型與資料結構原理,自行實作一個基於 LinkedList 的堆疊是很好的練習。本文展示如何使用泛型 <T> 建立一個簡單的 Stack<T> 類別。

Stack<T> 實作

package cn.edu.xidian.crytoll;

import java.util.LinkedList;

public class Stack<T> {
    private LinkedList<T> container = new LinkedList<>();

    public void push(T t) {
        container.addFirst(t);
    }

    public T pop() {
        return container.removeFirst();
    }

    public boolean empty() {
        return container.isEmpty();
    }
}

使用 LinkedList 的 addFirst 與 removeFirst 即可達成 LIFO(後進先出)語意。

測試程式

package cn.edu.xidian.crytoll;

public class StackTest {
    public static void main(String[] args) {
        Stack<String> stack = new Stack<>();
        System.out.println("向堆疊加入字串:");
        stack.push("視頻學Java");
        stack.push("細說Java");
        stack.push("Java從入門到精通(第2版)");

        System.out.println("從堆疊取出字串:");
        while (!stack.empty()) {
            System.out.println(stack.pop());
        }
    }
}

執行結果

向堆疊加入字串:
視頻學Java
細說Java
Java從入門到精通(第2版)
從堆疊取出字串:
Java從入門到精通(第2版)
細說Java
視頻學Java

重點總結

  • 泛型 <T> 讓堆疊可儲存任意型別,編譯期型別安全。
  • 內部委派 LinkedList 實作,程式碼簡潔。
  • 可擴充 peek()、size() 等方法。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved