首页 > 代码库 > 爪哇国新游记之十八----泛型栈类
爪哇国新游记之十八----泛型栈类
import java.lang.reflect.Array;/** * 泛型栈 * * @param <T> */public class Stack<T>{ private Class<T> type;// 栈元素所属的类 private int size;// 栈深度 private T[] arr;// 用数组存储 private int top;// 栈顶元素的下标 public Stack(Class<T> type,int size){ this.type = type; this.size=size; arr=createArray(size); top=-1; } /** * 创建数组 * @param size * @return */ @SuppressWarnings("unchecked") private T[] createArray(int size) { return (T[]) Array.newInstance(type, size); } /** * 压栈 * @param t */ public void push(T t){ top++; arr[top]=t; } /** * 出栈 * @return */ public T pop(){ T t=arr[top]; top--; return t; } /** * 取栈顶元素 * @return */ public T peek(){ return arr[top]; } /** * 判断栈是否为空 * @return */ public boolean isEmpty(){ return top==-1; } /** * 判断栈是否满了 * @return */ public boolean isFull(){ return top==(size-1); } public static void main(String[] args){ Stack<String> s=new Stack<String>(String.class,100); s.push("以恒心为良友"); s.push("以经验为参谋"); s.push("以小心为兄弟"); s.push("以希望为哨兵"); while(!s.isEmpty()){ String str=s.pop(); System.out.println(str); } }}
输出:
以希望为哨兵以小心为兄弟以经验为参谋以恒心为良友
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。