手机
当前位置:查字典教程网 >编程开发 >Java >Java编程思想里的泛型实现一个堆栈类 分享
Java编程思想里的泛型实现一个堆栈类 分享
摘要:觉得作者写得太好了,不得不收藏一下。对这个例子的理解://类型参数不能用基本类型,T和U其实是同一类型。//每次放新数据都成为新的top,把...

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

对这个例子的理解:

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

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

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

复制代码 代码如下:

//: 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

*/

【Java编程思想里的泛型实现一个堆栈类 分享】相关文章:

java线程阻塞中断与LockSupport使用介绍

归并排序的实现代码与思路

Java线程关闭的3种方法

java类中生成jfreechart,返回图表的url地址 代码分享

JAVA实现多线程的两种方法实例分享

javamail 发送邮件的实例代码分享

java单向链表的实现实例

java 使用线程做的一个简单的ATM存取款实例代码

Java中new关键字和newInstance方法的区别分享

java开发之读写txt文件操作的实现

精品推荐
分类导航