欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java 队列,栈,双端队列

程序员文章站 2022-09-21 14:08:05
队列:public static void main(String[] args) { Queue q = new LinkedList(); System.out.println("The first element is: " + q.peek()); q.offer(5); q.offer(13); q.offer(8);...

队列:

public static void main(String[] args) {
       
        Queue<Integer> q = new LinkedList();
        
        System.out.println("The first element is: " + q.peek());
        
        q.offer(5);
        q.offer(13);
        q.offer(8);
        q.offer(6);
       
        q.poll();
        
        System.out.println("The first element is: " + q.peek());
        
        System.out.println("The size is: " + q.size());
    }
  • offer,add 区别:
    队列满的时候 offer返回false add抛出异常

  • poll,remove 区别:
    remove() 和 poll() 方法都是从队列中删除第一个元素
    poll() 方法在用空集合调用时不是抛出异常,只是返回 null。

  • peek,element区别:
    element() 和 peek() 用于在队列的头部查询元素。与 remove() 方法类似,在队列为空时, element() 抛出一个异常,而 peek() 返回 null。

对于Stack,官方已经不推荐使用
现在可以用双端队列deque来实现队列和栈

双端队列(同时实现栈、队列)

双端队列

  • addFirst(E):void 在队头添加元素。
  • addLast(E):void 在队尾添加元素。
  • offerFirst(E):boolean 在队头添加元素,并返回是否添加成功。
  • offerLast(E):boolean 在队尾添加元素,并返回是否添加成功。
  • removeFirst():E 删除队头元素,并返回删除的元素,如果队列为null,抛出异常。
  • removeLast():E 删除队尾元素,并返回删除的元素,如果队列为null,抛出异常。
  • pollFirst():E 删除队头元素,并返回删除的元素,如果队列为null,返回null。
  • pollLast():E 删除队尾元素,并返回删除的元素,如果队列为null,返回null。
  • getFirst():E 获取队头元素,如果队列为null将抛出异常。
  • getLast():E 获取队尾元素,如果队列为null将抛出异常。
  • peekFirst():E 获取队头元素,如果队列为null将返回null。
  • peekLast():E 获取队尾元素,如果队列为null将返回null。
  • removeFirstOccurrence(Object):boolean 删除第一次出现的指定元素,并返回是否删除成功。
  • removeFirstOccurrence(Object):boolean 删除最后一次出现的指定元素,并返回是否删除成功。

队列

因为deque实现了queue的接口所以使用起来和queue基本一致

  • add(E):boolean 在队尾添加元素,添加成功返回true,如果队列已满无法添加则抛出异常。
  • offer(E):boolean 在队尾添加元素,添加成功返回true,如果队列已满无法添加则返回false。
  • remove():E 删除队头元素,并返回删除的元素,如果队列为null,抛出异常。
  • poll():E 删除队头元素,并返回删除的元素,如果队列为null,返回null。
  • element():E 获取队头元素,如果队列为null将抛出异常。
  • peek():E 获取队头元素,如果队列为null将返回null。

  • peek():E 获取队头元素,如果队列为null将返回null。
  • push(E):void 栈顶添加一个元素。
  • pop():E 移除栈顶元素,返回移除的元素,如果栈没有元素抛出异常。

Deque的实现类有两个:ArrayDequeLinkedList
ArrayDeque不支持null,会报错

当需要进行频繁的插入、删除:LinkedList
当频繁随机访问:ArrayDeque

本文地址:https://blog.csdn.net/qq_43357627/article/details/109270247

相关标签: java