Java中自定义Stack的Demo
来源:互联网 发布:今天怎么登录不上淘宝 编辑:程序博客网 时间:2024/06/11 07:16
import java.lang.reflect.Field;public class LinkedStack<T> {class Node<T> {/** * value storage object */T item;/** * next node */Node<T> next;/** * default constructor */Node() {item = null;next = null;}/** * full-param constructor * * @param item * @param next */Node(T item, Node<T> next) {this.item = item;this.next = next;}@Overridepublic String toString() {return item == null ? null : item.toString();}/** * judge if linked stack reached its end * * @return */boolean end() {return item == null && next == null;}}/** * override toString */@Overridepublic String toString() {StringBuilder stringBuilder = new StringBuilder("[");Node<T> temp = top;while( ! temp.end() ){stringBuilder.append(temp.toString()+",");temp = temp.next;}int length = stringBuilder.length();if( stringBuilder.indexOf(",", length-1) > -1 ){stringBuilder.deleteCharAt(length-1);}stringBuilder.append("]");return stringBuilder.toString();}/** * push operation * * @param item */public void push(T item) {Node<T> insertNode = new Node<>(item, top);top = insertNode;}/** * pop operation * * @return */public T pop() {T item = top.item;if (!top.end()) {top = top.next;}return item;}/** * peek * @return */public T peek(){T item = top.item;return item;}/** * top element as leading clue of the linked stack */private Node<T> top = new Node<>();}class TestLinkedStack {public static void main(String[] args) {LinkedStack<User> stack = new LinkedStack<>();stack.push(new User("Victor", "Male", 24));stack.push(new User("Lee", "Male", 24));User top = stack.peek();top = null;System.out.println( stack );}}class User {public String name;public String gender;public int age;public User(String name, String gender, int age) {super();this.name = name;this.gender = gender;this.age = age;}@Overridepublic String toString() {StringBuilder stringBuilder = new StringBuilder("{");Field[] fields = this.getClass().getDeclaredFields();for(Field field : fields) {field.setAccessible(true);String fieldName = field.getName();try {stringBuilder.append(fieldName+":"+field.get(this)+",");} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}}int length = stringBuilder.length();if( stringBuilder.indexOf(",", length-1) > -1 ){stringBuilder.deleteCharAt(length-1);}stringBuilder.append("}");return stringBuilder.toString();}public static void main(String[] args) {User user = new User("Victor", "Male", 24);System.out.println(user);}}
0 0
- Java中自定义Stack的Demo
- Java中Stack的用法
- acm中Stack和Queue使用demo
- Java中Heap与Stack的区别
- JAVA中Stack和Heap的区别
- JAVA中Stack和Heap的区别
- java中heap 与 stack 的区别
- JAVA中Stack和Heap的区别
- JAVA中Stack和Heap的区别
- JAVA中Stack和Heap的区别
- JAVA中Stack和Heap的区别
- JAVA中Stack和Heap的区别
- Java中Heap与Stack的区别
- Java中Heap与Stack的区别
- java中Stack类的使用
- JAVA中Stack和Heap的区别
- Java中Heap与Stack的区别
- JAVA中Stack和Heap的区别
- ubuntu14.04编译安装QT5.4
- Actor模型和Akka消息驱动系统
- GNU C/C++ __attributes__
- 设置参数值增量+1的简单函数
- 接口回调的原理:接口变量 调用 被类实现的接口的方法
- Java中自定义Stack的Demo
- Android之App Manifest
- svn服务器搭建和eclipce svn插件 注意事项
- CSS模式之三权分立
- 更换启动图片后的广告图片
- 九章算法面试题16 01随机生成函数
- 关于语音录制的代码,很经典!
- 抽象工厂模式
- 一粒神补肾养肾官网