Java使用泛型实现栈结构
泛型是Java SE5.0的重要特性,使用泛型编程可以使代码获得最大的重用。由于在使用泛型时要指明泛型的具体类型,这样就避免了类型转换。本实例将使用泛型来实现一个栈结构,并对其进行测试。
思路分析:既然是用泛型实现栈结构,那就不能用JDK自带的stack包了,需要自己定义一个栈结构,比如LinkedList。
代码如下:
Stack.java:
package cn.edu.xidian.crytoll; import java.util.LinkedList; public class Stack<T> { private LinkedList<T> container = new LinkedList<T>(); public void push(T t) { container.addFirst(t); } public T pop() { return container.removeFirst(); } public boolean empty() { return container.isEmpty(); } }
StackTest.java:
package cn.edu.xidian.crytoll; public class StackTest { public static void main(String[] args) { Stack<String> stack = new Stack<String>(); System.out.println("向栈中增加字符串:"); System.out.println("视频学Java"); System.out.println("细说Java"); System.out.println("Java从入门到精通(第2版)"); stack.push("视频学Java"); //向栈中增加字符串 stack.push("细说Java"); //向栈中增加字符串 stack.push("Java从入门到精通(第2版)"); //向栈中增加字符串 System.out.println("从栈中取出字符串:"); while (!stack.empty()) { System.out.println((String) stack.pop());//删除栈中全部元素并进行输出 } } }
效果如图: