Java中栈与队列的实现

  在Java中,可以使用LinkedList实现栈与队列;可以使用PriorityQueue实现优先队列,PriorityQueue实现的优先队列默认最小堆,可以通过传递Comparator对象实现最大堆。下面对各个API进行详细介绍:

一、LinkedList类

 构造方法:LinkedList< Integer > stack = new LinkedList< Integer >();

(1)添加元素

  • void addFirst(e)
  • boolean offerFirst(e)

(2)查询元素(不删除)

  • E getFirst():集合为空时抛异常;
  • E peekFirst():集合为空时返回null;

(3)删除首尾元素

  • E removeFirst():集合为空时抛异常;
  • E pollFirst():集合为空时返回null;

(4)删除某个元素

  • E remove(int index)
  • boolean remove(e)

(5)元素个数

  • int size()

二、PriorityQueue类

最小堆:PriorityQueue< Integer > integers = new PriorityQueue< Integer >();
最大堆:通过匿名颞部类对象实现

PriorityQueue<Integer> integers1 = new PriorityQueue<>(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1;
            }
        });

(1)入队

  • boolean add(E e)

(2)查询队列的头元素(不删除)

  • E peek():集合为空时返回null;

(3)出队

  • E poll():集合为空时返回null;

(4)删除某个元素

  • boolean remove(e)

(5)元素个数

  • int size()

三、Java本身的Stack类

1、Stack类的API设计:

  • 构造方法:Stack()
  • 成员方法:
    (1)入栈:push()
    (2)出栈:pop()
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值