集合5 - Queue

Queue - ArrayBlockingQueue

底层实现 -- 数组

Array(数组) - Blocking(创建对象时的容量,多了就堵塞) - Queue(先进先出)

public class _Queue {
    public static void main(String[] args) throws Exception{

        //TODO Collection Queue
        ArrayBlockingQueue queue = new ArrayBlockingQueue(3);

        System.out.println("第一个数据");
        queue.add("hehe");
        System.out.println("第二个数据");
        queue.add("haha");
        System.out.println("第三个数据");
        queue.add("hoho");
        //queue.add("hoho");  add方法超过容量并不会触发Blocking,而是直接报错

        System.out.println("第四个数据");
        //queue.put("oooo");
        //.put()方法 超过容量后会堵塞,程序会持续等待空闲容量

        System.out.println(queue.offer("oooo")); //false
        //.offer()方法 超过容量后返回false

        //TODO .poll() .take() 取数据
        System.out.println(queue.poll()); //最先入队的数据被删除
        System.out.println(queue.poll());
        //System.out.println(queue.poll());
        //System.out.println(queue.poll()); //空队列返回null

        System.out.println(queue.take());
        System.out.println(queue.take());  //空队列进入等待状态

        System.out.println(queue);
    }
}
posted @ 2023-01-03 17:31  LaViez  阅读(18)  评论(0)    收藏  举报