阿里Java学习路线:阶段 1:Java语言基础-Java语言高级特性:第33章:集合工具类:课时147:Queue队列

Queue描述的是一个队列,而队列的主要特点是实现先进先出的操作形式。其基本的操作形式如下:
在这里插入图片描述
如果将队列应用在多线程的“生产者与消费者”的模型处理上,那么对于生产者过快的情况下,就没有必要等待消费者或者数据了,可以将所有的内容保存在队列之中,队列的实现可以使用LinkedList子类来完成,观察这个类的定义:
在这里插入图片描述
队列的使用主要依靠Queue接口之中提供的方法来处理,提供有如下方法:
向队列中追加数据:boolean offer​(E e),可以直接使用add​()方法;
通过队列获取数据:public E poll(),弹出后删除数据。

范例:实现队列操作

package cn.mldn.demo;
import java.util.LinkedList;
import java.util.Queue;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        Queue<String> queue = new LinkedList<String>();
        queue.add("X");//追加队列数据,通过队尾追加
        queue.offer("A");//追加队列数据,通过队尾追加
        queue.offer("Z");//追加队列数据,通过队尾追加
        System.out.println(queue.poll());//X
        System.out.println(queue.poll());//A
        System.out.println(queue.poll());//Z
        System.out.println(queue.poll());//null
    }
}

除了LinkedList子类以外,还有一个优先级队列的概念,可以使用PriorityQueue实现优先级队列。这个类的定义如下:

public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable

public abstract class AbstractQueue<E> extends AbstractCollection<E> implements Queue<E>

public abstract class AbstractCollection<E> extends Object implements Collection<E>

在这里插入图片描述
范例:使用优先级队列

package cn.mldn.demo;
import java.util.PriorityQueue;
import java.util.Queue;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        Queue<String> queue=new PriorityQueue<String>();
        queue.offer("X");//追加队列数据,通过队尾追加
        queue.offer("A");//追加队列数据,通过队尾追加
        queue.offer("Z");//追加队列数据,通过队尾追加
        System.out.println(queue.poll());//A
        System.out.println(queue.poll());//X
        System.out.println(queue.poll());//Z
    }
}

对于队列的选用原则也是需要根据实际的项目环境来决定的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值