使用LinkedList完成一个堆栈MyStack

package com.zking.collection01;

import java.util.LinkedList;
/**
 * 1、 LinkedList是以链表的结构存储数据,查询慢、增删改快
    *LinkedList的特有方法:
    *1.1、addFirst(E e) : 向集合中的开头添加元素
    *1.2、addLast(E e):向集合的末尾添加元素
    *1.3、getFirst():得到集合中的第一个元素
    *1.4、getLast():得到集合中的最后一个元素
    *1.5、removeFirst():删除集合中的第一个元素
    *1.6、removeLast():删除集合中的最后一个元素
    *1.7、pop(E e) : 从集合的最上面弹出一个元素
    *1.8、push():向集合的最上面添加元素
    *1.9、isEmpty() : 判断集合中是否有为空
 * 2、堆栈结构有先进后出的特点,就像弹夹一样,先进去的在后进去的低下。
 * 3、在开发时,LinkedList集合也可以作为堆栈,队列的结构使用。
 * @author 15753
 *
 */
public class MyStack {
            //弹夹:
            private LinkedList ls=new LinkedList();

            //装弹(压栈):
            public void push(Object obj){

            ls.addFirst(obj); //每次都把子弹增加到第一颗,把原来的压到下面去

            }

            //打枪(出栈):
            public Object pop(){

                Object obj = ls.getFirst();//取出第一颗子弹
                ls.removeFirst(); //移除第一颗子弹
                return obj;//返回刚刚打出的子弹
            }

            //计算弹夹中子弹数量:
            public int size(){

            return ls.size();

            }

            public static void main(String[] args) {

            MyStack ms=new MyStack();

            ms.push("a");//装第一颗子弹

            ms.push("b");

            ms.push("c");

            ms.push("d");//装最后一颗子弹

            while(ms.size()!=0){//如果子弹数量不等于0,就一直循环

                System.out.println(ms.pop());

            }

            }
}
 

上一篇:播放wav的方法,


下一篇:C语言实现链式栈(不带头结点)