集合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 @   LaViez  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示