当前位置:  编程技术>java/j2ee

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

    来源: 互联网  发布时间:2014-10-26

    本文导语:  觉得作者写得太好了,不得不收藏一下。 对这个例子的理解: //类型参数不能用基本类型,T和U其实是同一类型。 //每次放新数据都成为新的top,把原来的top往下压一级,通过指针建立链接。 //末端哨兵既是默认构造器创建出...

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

对这个例子的理解:

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

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

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

代码如下:

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

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


    
 
 

您可能感兴趣的文章:

  • Mobicents 的 Java SS7 堆栈和服务 jSS7
  • 输出java进程的jstack信息示例分享 通过线程堆栈信息分析java线程
  • java堆栈类使用实例(java中stack的使用方法)
  • andriod下java socket网络编程:java socket客户端服务端代码示例
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • 用java做网络编程和用c做网络编程有啥区别
  • 我想买台二手笔记本作编程,请问java编程的最低配置是多少,价几何
  • 哪位java同门师兄有《java2编程详解》电子文档,注意不是影印版
  • 寻找<<java2图形设计卷2SWING>>一书源代码和<<java网络高级编程>>一书源代码
  • 电力翻译的o'reilly的Java网络编程(Java network programming)怎样?
  • Java 网络编程有些什么内容?
  • 《java编程指南 》这本书好吗?
  • ubuntu上配置Java编程环境
  • 针对使用java进行硬件编程
  • Linux下java编程
  • 基于Java的新编程语言 Jabaco
  • 怎样学习JAVA网络编程?
  • java的网络编程
  • [菜鸟提问]关于linux下的java编程
  • Java行为驱动编程框架 JDave
  • 有没有关于Java和编程的50个观点?
  • 编程语言 Java
  • 推荐一本电子版的xml与java编程的书,告诉我下载地址。
  • Java Mail 编程
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 各位大虾,能否告知JAVA的核心思想
  • 哪里有java 编程思想第二版英文版下载
  • 谁能提供java编程思想的下载
  • 如果你看过《JAVA编程思想》,请进!
  • 谁知道JAVA编程思想可以在哪下载? 有分
  • 谁有《java编程思想 第2版》简体完整电子版
  • 100分求<<JAVA编程思想>>电子版
  • 强烈推荐的《java编程思想(完整版)》,这里有下载。
  • 关于《21天学通java》和《java编程思想》
  • <<java编程思想>>的一道练习题???写一个程序,打印出从命令行获取的三个自变量?解决即结帖
  • “Java编程思想”到底是不是侯捷译的
  • 请问《JAVA编程思想》第二版怎样??
  • 小弟最近刚看完《java编程思想》,目前比较迷茫,还不知道自己到底应该往哪个方向发展?
  • java编程思想适合处学吗
  • 大家好。这是JAVA编程思想P266-267上的一个例子,高手请帮忙看一下为什么编译通不过。谢谢。
  • 在机械工业出版社出的《JAVA 编程思想》中,一句关于内部类的话不理解?
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • 新年第一天,让我们讨论一下未来一年JAVA的发展趋势! 个人认为,JAVA将主要朝ERP和JAVA手机方面发展!
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍
  • 我想学Java,但不知道Java的实用的开发工具有那些,Java主要用在哪些方面,EJB到底是什么东西??
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getclasspath定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3