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()

  • 相关阅读:
    redis的两种安装方法
    http头部信息
    软件测试技术知识
    github使用
    3 python之基础概要
    2 Python之编程语言介绍及变量
    1 Python入门及计算机硬件知识
    Linux常用命令
    CMDB小练习
    CMDB和运维自动化
  • 原文地址:https://www.cnblogs.com/xym4869/p/12548857.html
Copyright © 2011-2022 走看看