泛型是Java SE5.0的重要特性,使用泛型编程可以使代码获得最大的重用。由于在使用泛型时要指明泛型的具体类型,这样就避免了类型转换。本实例将使用泛型来实现一个栈结构,并对其进行测试。
思路分析:既然是用泛型实现栈结构,那就不能用JDK自带的stack包了,需要自己定义一个栈结构,比如LinkedList。
代码如下:
Stack.java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 |
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 |
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()); //删除栈中全部元素并进行输出 } } } |
效果如图:
原文:http://www.cnblogs.com/cysolo/p/3577542.html