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

愈治不了的伤

愈治不了的伤

2016-02-19 09:10

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享Java编程思想里的泛型实现一个堆栈类 分享教程,希望对大家能有一点小小的帮助。

觉得作者写得太好了,不得不收藏一下。

对这个例子的理解:

//类型参数不能用基本类型,T和U其实是同一类型。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

//每次放新数据都成为新的top,把原来的top往下压一级,通过指针建立链接。

//末端哨兵既是默认构造器创建出的符合end()返回true的节点。
代码如下:

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

public class LinkedStackT {
  private static class NodeU {
    U item;
    NodeU next;
    Node() { item = null; next = null; }
    Node(U item, NodeU next) {
      this.item = item;
      this.next = next;
    }
    boolean end() { return item == null && next == null; }
  }
  private NodeT top = new NodeT(); // End sentinel
  public void push(T item) {
    top = new NodeT(item, top);
  }   
  public T pop() {
    T result = top.item;
    if(!top.end())
      top = top.next;
    return result;
  }
  public static void main(String[] args) {
    LinkedStackString lss = new LinkedStackString();
    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
      LinkedStackInteger lii = new LinkedStackInteger();
      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
*/

展开更多 50%)
分享

猜你喜欢

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

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

Java泛型编程快速入门

编程语言 网络编程
Java泛型编程快速入门

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Java 泛型的理解与等价实现

编程语言 网络编程
Java 泛型的理解与等价实现

实例教程:Java Socket编程的一个秘密类

编程语言 网络编程
实例教程:Java Socket编程的一个秘密类

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

编写一个JAVA的队列类

Java JAVA基础
编写一个JAVA的队列类

a Socket编程中的一个秘密类

编程语言 网络编程
a Socket编程中的一个秘密类

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

javascript最短的拖动代码[兼容FF]

javascript最短的拖动代码[兼容FF]

深入c语言continue和break的区别详解

深入c语言continue和break的区别详解
下拉加载更多内容 ↓