队列与栈(Queue,Deque,Stack)

队列与栈(Queue,Deque,Stack)

队列(Queue)是一种特殊的线性表,是一种先进先出的数据结构,它只允许在表的前端进行删除操作,在表的后端进行插入操作,进行插入操作的端称为队尾,进行删除操作的端称为队头,队列中没有元素时,称为空队列,是一种先进先出的线性数据结构, LinkedList类实现了queue接口

 private static void queue() {
        Queue<String> queue = new LinkedList<>();
        queue.add("小花");
        queue.add("小小");
        queue.add("小丽");
        // 队列的长度
        System.out.println(queue.size());
        // 获取但不移除队列的头,队列为空,返回null
        System.out.println(queue.peek());
        System.out.println(queue.size());
        // 获取并移除此队列的头,队列为空,返回null
        System.out.println(queue.poll());
        System.out.println(queue.size());
    }

Deque:一个线性的collecton,支持在两端插入和移除元素。此接口既支持有容量限制的双端队列,也支持没有固定大小的双端队列,接口定义在双端队列两端访问元素的方法,提供插入、移除、删除和检查元素的方法,是一个双端队列

    private static void deque() {
        Deque<String> deque = new LinkedList<>();
        deque.add("小花");
        deque.add("小小");
        deque.add("小丽");
        // 可以从两边来取
        System.out.println(deque.getFirst());
        System.out.println(deque.getLast());
    }

Stack类代表先进后出的堆栈

 private static void stack() {
        Stack<String> s = new Stack<>();
        s.push("bin");
        s.push("tom");
        s.push("lili");
        // 不移除
        System.out.println(s.peek());
        //移除
        System.out.println(s.pop());
        System.out.println(s.pop());
    }

posted @ 2021-07-14 08:29  JamieChyi  阅读(21)  评论(0)    收藏  举报  来源