Java学习----Queue队列

本文总结了Java中Queue队列的学习内容,包括队列的基本概念、阻塞和非阻塞队列的区别、有界和无界队列的特性。详细介绍了阻塞队列如ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue等,以及非阻塞队列如ConcurrentLinkedQueue和PriorityQueue。还探讨了Deque接口和其在LinkedList中的实现。
摘要由CSDN通过智能技术生成

今日学习内容总结如下:

Java针对队列提供的实现

Queue队列就是一个先入先出FIFO的数据结构

队列是一种特殊的线性表,遵循先入先出、后入后出的基本原则,一般来说,它只允许在表的前端进行删除操作,而在表的后端进行插入操作,但是java的某些队列运行在任何地方插入删除;比如常用的LinkedList集合,它实现了Queue接口,因此可以理解为LinkedList就是一个队列

接口定义

public interface Queue<E> extends Collection<E> {
     boolean add(E e);  //在队尾添加数据
     boolean offer(E e); //在LinkedList中就是使用add提供的实现
   
     E remove();  //删除队列头部的数据,同时返回删除的数据
     E poll();
  
     E element(); //获取队列头部的数据,并不会执行删除操作
     E peek();
}

队列主要分为阻塞和非阻塞,有界和无界、单向链表和双向链表之分;

1、阻塞和非阻塞

阻塞队列

入列(添加元素)时,如果元素数量超过队列总数,会进行等待(阻塞),待队列的中的元素出列后,元素数量未超过队列总数时,就会解除阻塞状态,进而可以继续入列;
出列(删除元素)时,如果队列为空的情况下,也会进行等待(阻塞),待队列有值的时候即会解除阻塞状态,进而继续出列࿱

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值