程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java編程思惟裡的泛型完成一個客棧類 分享

Java編程思惟裡的泛型完成一個客棧類 分享

編輯:關於JAVA

Java編程思惟裡的泛型完成一個客棧類 分享。本站提示廣大學習愛好者:(Java編程思惟裡的泛型完成一個客棧類 分享)文章只能為提供參考,不一定能成為您想要的結果。以下是Java編程思惟裡的泛型完成一個客棧類 分享正文


認為作者寫得太好了,不能不珍藏一下。

對這個例子的懂得:

//類型參數不克不及用根本類型,T和U實際上是統一類型。

//每次放新數據都成為新的top,把本來的top往下壓一級,經由過程指針樹立鏈接。

//末尾尖兵既是默許結構器創立出的相符end()前往true的節點。

//: generics/LinkedStack.java
// A stack implemented with an internal linked structure.
package generics;

public class LinkedStack<T> {
  private static class Node<U> {
    U item;
    Node<U> next;
    Node() { item = null; next = null; }
    Node(U item, Node<U> next) {
      this.item = item;
      this.next = next;
    }
    boolean end() { return item == null && next == null; }
  }
  private Node<T> top = new Node<T>(); // End sentinel
  public void push(T item) {
    top = new Node<T>(item, top);
  }   
  public T pop() {
    T result = top.item;
    if(!top.end())
      top = top.next;
    return result;
  }
  public static void main(String[] args) {
    LinkedStack<String> lss = new LinkedStack<String>();
    for(String s : "Phasers on stun!".split(" "))
      lss.push(s);
    String ss;
    while((ss = lss.pop()) != null)
      System.out.println(ss);
      //----- if put integer into the LinkedList
      LinkedStack<Integer> lii = new LinkedStack<Integer>();
      for(Integer i = 0; i < 10; i++){
          lii.push(i);
      }
      Integer end;
      while((end = lii.pop()) != null)
          System.out.println(end);
      //----- integer test end!
  }

 
}
/* Output:
stun!
on
Phasers
*/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved