美文网首页
Collection-Stack

Collection-Stack

作者: 小程有话说 | 来源:发表于2016-11-13 14:51 被阅读36次

jdk版本:1.8.0_77
参考文档:jdk 1.8 docs

Stack类图

Stack继承关系

Stack特点

  1. Stack 栈(last-in-first-out)后进先出,继承自Vector,通过5个方法(push,pop,peek,empty,search)来实现栈特性。
  2. Stack method:
    (1). push向栈顶添加一个元素;
    (2). pop从栈顶弹出一个元素;
    (3). peek返回栈顶元素;
    (4). empty是否存在元素;
    (5). search从栈顶开始查找元素计算到顶部距离。
    @Test
    public void testUsual() {
        Stack stack = new Stack();
        stack.push("1");
        stack.push("2");
        stack.push("3");
        System.out.println("pop top element:" + stack.pop());
        System.out.println("peek top element:" + stack.peek());
        System.out.println("check stack empty:" + stack.empty());
        System.out.println("search element position:" + stack.search("1"));
    }
  1. 如果需要使用栈最好使用实现自Deque接口的类而不是Stack,Stack继承自Vector可以对指定位置元素做操作不安全;从面向接口编程角度考虑选择Deque是更好的选择。
    Deque<Integer> stack = new ArrayDeque<Integer>();
    @Test
    public void testChoose() {
        Stack stack1 = new Stack();
        Deque<String> stack2 = new ArrayDeque();
        stack1.push("1");
        stack2.push("1");
        stack1.add(1, "2");//Stack可以在指定位置添加元素
    }
  1. Stack是线程安全的,方法使用synchronized来保证线程之间同步。
    public synchronized E pop() {
        E       obj;
        int     len = size();

        obj = peek();
        removeElementAt(len - 1);

        return obj;
    }

代码

相关文章

  • Collection-Stack

    jdk版本:1.8.0_77参考文档:jdk 1.8 docs Stack类图 Stack特点 Stack 栈(l...

网友评论

      本文标题:Collection-Stack

      本文链接:https://www.haomeiwen.com/subject/zqjcpttx.html