Java——集合(Queue)

1.Queue 接口的常用功能

除了基本的 Collection 操作外,队列还提供其他的插入、提取和检查操作。每个方法都存在
两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值( null false ,具体取
决于操作)。插入操作的后一种形式是用于专门为有容量限制的 Queue 实现设计的;在大多数
实现中,插入操作不会失败

队列通常(但并非一定)以 FIFO First In First Out 先进先出)的方式排序各个元素。不过优先
级队列和 LIFO 队列(或堆栈)例外,前者根据提供的比较器或元素的自然顺序对元素进行排序,后者按 LIFO (后进先出)的方式对元素进行排序。无论使用哪种排序方式,队列的 都是调用 remove() poll() 所移除的元素。在 FIFO 队列中,所有的新元素都插入队列的 其他种类的队列可能使用不同的元素放置规则。每个 Queue 实现必须指定其顺序属性。 Queue 实现通常不允许插入 null 元素,尽管某些实现(如 LinkedList 并不禁止插入 null
Queue 接口并未定义阻塞队列的方法

2.Dueue双端队列

一个线性 collection ,支持在两端插入和移除元素。名称 deque “double ended queue (双端
队列) 的缩写,通常读为 “deck” 。大多数 Deque 实现对于它们能够包含的元素数没有固定限
制,但此接口既支持有容量限制的双端队列,也支持没有固定大小限制的双端队列
此接口定义在双端队列两端访问元素的方法。提供插入、移除和检查元素的方法。每种方法都存
在两种形式:一种形式在操作失败时抛出异常,另一种形式返回一个特殊值( null false ,具体取决于操作)。插入操作的后一种形式是专为使用有容量限制的 Deque 实现设 计的;在大多数实现中,插入操作不能失败

此接口扩展了 Queue 接口。在将双端队列用作队列时,将得到 FIFO (先进先出)行为。将元
素添加到双端队列的末尾,从双端队列的开头移除元素。从 Queue 接口继承的方法完全等效于
Deque 方法,如下表所示:

双端队列也可用作 LIFO (后进先出)堆栈。应优先使用此接口而不是遗留 Stack 类。在将双
端队列用作堆栈时,元素被推入双端队列的开头并从双端队列开头弹出。堆栈方法完全等效于
Deque 方法,如下表所示:

List 接口不同,此接口不支持通过索引访问元素。
虽然 Deque 实现没有严格要求禁止插入 null 元素,但建议最好这样做。建议任何事实上允许
null 元素的 Deque 实现用户最好 要利用插入 null 的功能。这是因为各种方法会将 null
作特殊的返回值来指示双端队列为空

3.Queue实现子类

LinkedList

package com.openlab;
import java.util.LinkedList;
/**
* LinkedList使用示例
*/
public class LinkedListDemo {
    public static void main(String[] args) {
        LinkedList<Integer> list = new LinkedList<>();
        // 添加
        LinkedList<Integer> data = addMethod(list);
        System.out.println(data); // [5, 3, 2, 1, 4]
        // 检查
        chekMethod(data);
        // 删除
        //removeMethod(data);
}

LinkedList集合特点

1.可以添加重复元素

2.元素是有顺序的,这个顺序是添加顺序

3.查询效率低,但是添加和删除效率高(与 ArrayList 相比)

ArrayList

  • 19
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值