zoukankan      html  css  js  c++  java
  • Java Stack,Queue,PriorityQueue,deque相关操作

    Stack

    创建:Stack stack = new Stack<>();

    boolean empty():判断栈是否为空
    E peek():返回栈顶对象,不移除
    E pop():返回栈顶对象,并移除
    E push(E item):压入栈顶
    int search(Object o):返回对象在栈的位置;search返回的位置是从栈顶开始计数,栈顶为1,而不在栈中的元素返回-1
    

    Queue

    创建:Queue queue = new LinkedList<>();

    boolean add(E e):向队列中添加元素
    E element():返回队列的头,且不移除
    E remove():返回队列的头,且移除
    boolean offer(E e):向队列中添加元素
    E peek():返回队列的头,且不移除
    E poll():返回队列的头,且移除
    

    add、element、remove会在操作失败时抛出异常,而offer、peek、poll在操作失败时返回特殊值。

    PriorityQueue

    peek()//返回队首元素
    poll()//返回队首元素,队首元素出队列
    add()//添加元素
    size()//返回队列元素个数
    isEmpty()//判断队列是否为空,为空返回true,不空返回false
    

    默认是小顶堆,可添加Comparator改变成大顶堆

            Queue<Integer> q1 = new PriorityQueue<>();//小顶堆
            //大顶堆
            Queue<Integer> q = new PriorityQueue<>(new Comparator<Integer>() {
                @Override
                public int compare(Integer t1, Integer t2) {
                    if (t1 > t2)
                        return -1;
                    else
                        return 1;
                }
            });
    

    deque

    双端队列。创建:Deque deque = new LinkedList()

  • 相关阅读:
    PyQt5使用http请求获取天气
    Qt获取某地的天气情况
    各种编码方式
    Qt获取天气信息并解析
    QFile读文件
    QUrl
    Android数据库升级、降级、创建(onCreate() onUpgrade() onDowngrade())的注意点
    adb命令开关蓝牙及NFC
    fragment重叠问题解决方法
    Android跨进程启动另外一个应用界面时存在的问题解决办法
  • 原文地址:https://www.cnblogs.com/xym4869/p/12548857.html
Copyright © 2011-2022 走看看