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

2016-02-19 09:10 3 1 收藏

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

【 tulaoshi.com - 编程语言 】

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

对这个例子的理解:

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

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

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

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

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

(本文来源于图老师网站,更多请访问http://www.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
*/

来源:http://www.tulaoshi.com/n/20160219/1589797.html

延伸阅读
标签: PHP
       <?php   /*   如有转载,请注明作者      作者: 何志强   文件: ubb.php   备注: 说是改进,其实核心函数parse()已经完全重写了,而且思路也是不一样的。   不过仍是受何志强的例子的启发,而且测试的例子还有URLCHECK等...
Boost中应用的泛型编程技术 作者:David Abrahams 提交者:eastvc 发布日期:2003-9-20 10:16:13 原文出处:http://www.cpphelp.net/issue/gpt.html 译者:Merlin Ran 英文原文: http://www.boost.org/more/generic_programming.html 1、何谓泛型编程 泛型编程(Generic Programming)关注于产生通用的软件组件,让这些组件在不同的...
一个简单的链表模版类的实现 作者:Smoke 源代码下载     这是翻阅 《数据结构、算法与应用—— C++语言描述》 以及在网上得到的一些资料后写出来的。起因是在项目中要用到一个链表,但我做一个简单的链表在C++中用的时候跟C差别很多,比如赋值运算(编...
前言 永远记住,编写代码的宗旨在于简单明了,不要使用语言中的冷僻特性,耍小聪明,重要的是编写你理解的代码,理解你编写的代码,这样你可能会做的更好。    --- Herb Sutter !-- frame contents -- !-- /frame contents -- 1998年,国际C++标准正式通过,标准化对C++最重要的...
最近频繁的接触到泛型方面的问题,所以也不得不来学习一下了,开始主要是在MSDN的WebCast上去下载教学录象看的(李建忠老师的),本篇文章先介绍一下泛型入门方面的知识,希望能让刚开始学习泛型的朋友能够更快的入门,言归正传,首先我们来看一下泛型的基本概念。 最显著的一点就是它参数化了类型,把类型作为参数抽象出来,从而使我们在...

经验教程

336

收藏

57
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部