爪哇国新游记之十八----泛型栈类
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); } } }
输出:
以希望为哨兵
以小心为兄弟
以经验为参谋
以恒心为良友
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)