源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Java编程思想里的泛型实现一个堆栈类 分享

  • 时间:2021-04-08 16:17 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Java编程思想里的泛型实现一个堆栈类 分享
觉得作者写得太好了,不得不收藏一下。 对这个例子的理解: //类型参数不能用基本类型,T和U其实是同一类型。 //每次放新数据都成为新的top,把原来的top往下压一级,通过指针建立链接。 //末端哨兵既是默认构造器创建出的符合end()返回true的节点。
[u]复制代码[/u] 代码如下:
//: 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 */
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部