熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

Java編程思想裡的泛型實現一個堆棧類 分享

2013-11-15 12:12:18  來源: JSP教程 

  覺得作者寫得太好了不得不收藏一下

  對這個例子的理解

  //類型參數不能用基本類型T和U其實是同一類型

  //每次放新數據都成為新的top把原來的top往下壓一級通過指針建立鏈接

  //末端哨兵既是默認構造器創建出的符合end()返回true的節點

復制代碼 代碼如下:

  
//: generics/LinkedStackjava
// 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) {
thisitem = item;
thisnext = 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 = topitem;
if(!topend())
top = topnext;
return result;
}
public static void main(String[] args) {
LinkedStack<String> lss = new LinkedStack<String>();
for(String s : "Phasers on stun!"split(" "))
lsspush(s);
String ss;
while((ss = lsspop()) != null)
Systemoutprintln(ss);
// if put integer into the LinkedList
LinkedStack<Integer> lii = new LinkedStack<Integer>();
for(Integer i = ; i < ; i++){
liipush(i);
}
Integer end;
while((end = liipop()) != null)
Systemoutprintln(end);
// integer test end!
}


}
/* Output:
stun!
on
Phasers
*/


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20487.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.