使用LinkedList完成一个堆栈
个人理解
跟子弹夹的原理差不多,子弹夹装子弹,每次都是装在第一个位置,并且把前面一颗子弹挤下去,而发射子弹都是发射第一颗子弹(每一次发射完都需要抛出这个空弹壳)
需要了解的东西
Linkedlist中有addFirst(),//添加为第一个值
linkedList.removeFirst()//删除第一个值
代码
package com.text;
import java.util.LinkedList;
public class MyStack {
//相当于一个子弹夹
LinkedList linkedList=new LinkedList<>();
/**
* 压(装子弹)
* @param a
*/
public void push(Object a){
linkedList.addFirst(a);//每次都装为第一颗子弹
}
/**
* 弹(发射子弹)
*/
public Object pop() {
Object first = linkedList.getFirst();//得到第一颗子弹
linkedList.removeFirst();//抛出第一颗子弹的空弹壳
return first;//调用这方法将这颗子弹发射出去
}
public static void main(String[] args) {
MyStack mystack=new MyStack();//实例化一个对象
mystack.push(1);
mystack.push(2);
mystack.push(3);
while (mystack.linkedList.size()!=0) {
System.out.println(mysize.pop());
}
}
}