当前位置: 首页 > news >正文

美工做图哪个网站好/网站怎么做推广

美工做图哪个网站好,网站怎么做推广,用织梦同时做两个网站,南京专业做网站公司在之前的文章中已经为大家介绍了java并发编程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue,本文为系列文章第五篇。 Java PriorityBlockingQueue队列是BlockingQueue接口的实现类,它根据priority优先级确…

在之前的文章中已经为大家介绍了java并发编程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue,本文为系列文章第五篇。

Java PriorityBlockingQueue队列是BlockingQueue接口的实现类,它根据priority优先级确定队列内元素对象的处理顺序,也就是说在一个PriorityBlockingQueue队列中,被添加到队列中的元素,根据priority进行排序。PriorityBlockingQueue具有BlockingQueue阻塞队列的一些特性,如果您不熟悉BlockingQueue可以参看我之前的文章。

1. PriorityBlockingQueue 特性

  • PriorityBlockingQueue 是一个无界队列(队列内元素个数没有上限),队列容量可以自动增长。其初始化队列容量为11,也可以通过构造函数参数initialCapacity指定其初始化容量。
  • 不接受 NULL对象插入到PriorityBlockingQueue
  • 添加到PriorityBlockingQueue队列中的元素对应的Java类,通常需要实现Comparable接口或者是可以默认排序的对象(如数字、字符串),否则会抛出ClassCastException
  • 可以使用java8 的Comparator提供自定义队列内元素的排序规则,后文会举例说明。
  • 如果存在多个对象拥有相等的优先级,从队列中poll获取元素的时候可能获取到其中任何一个元素。
  • PriorityBlockingQueue 是线程安全的

2. PriorityBlockingQueue 应用实例

我们写一个类Employee,该类实现了Comparable接口,所以其实例对象可以根据compareTo()函数定义的规则进行排序。

public class Employee implements Comparable<Employee> {private Long id;private String name;private LocalDate dob;//Getters and setterspublic Employee(Long id, String name, LocalDate dob) {super();this.id = id;this.name = name;this.dob = dob;}@Overridepublic int compareTo(Employee emp) {return this.getId().compareTo(emp.getId());  //根据id排序}@Overridepublic String toString() {return "Employee [id=" + id + ", name=" + name + ", dob=" + dob + "]";}
}

构造一个PriorityBlockingQueue对象,并向其内部加入若干Employee对象,并使用poll方法从队列内取出元素。

PriorityBlockingQueue<Employee> priorityBlockingQueue = new PriorityBlockingQueue<>();priorityBlockingQueue.add(new Employee(1l, "AAA", LocalDate.now()));
priorityBlockingQueue.add(new Employee(4l, "CCC", LocalDate.now()));
priorityBlockingQueue.add(new Employee(5l, "BBB", LocalDate.now()));
priorityBlockingQueue.add(new Employee(2l, "FFF", LocalDate.now()));
priorityBlockingQueue.add(new Employee(3l, "DDD", LocalDate.now()));
priorityBlockingQueue.add(new Employee(6l, "EEE", LocalDate.now()));while(true) {Employee e = priorityBlockingQueue.poll();System.out.println(e);if(e == null) break;
}

根据上文中compareTo()方法定义的排序规则,按照id为优先级,所以从队列中拿出对象并打印的顺序如下:

Employee [id=1, name=AAA, dob=2021-03-25]
Employee [id=2, name=FFF, dob=2021-03-25]
Employee [id=3, name=DDD, dob=2021-03-25]
Employee [id=4, name=CCC, dob=2021-03-25]
Employee [id=5, name=BBB, dob=2021-03-25]
Employee [id=6, name=EEE, dob=2021-03-25]

3. 使用 Java8 Comparator 做优先级排序的实例

我们可以使用java 8 Comparator排序器,来定义优先级排序规则。使用构造方法PriorityBlockingQueue(int initialCapacity, Comparator comparator) 构造PriorityBlockingQueue队列。

//以员工名称的字符串自然正序进行排序
Comparator<Employee> nameSorter = Comparator.comparing(Employee::getName);PriorityBlockingQueue<Employee> priorityBlockingQueue = new PriorityBlockingQueue<>( 11, nameSorter );//此处省略向队列中添加对象,及循环取出对象打印的代码,参考上文

按照员工姓名进行优先级排序,所以打印顺序AAA、BBB、CCC、DDD、EEE、FFF

Employee [id=1, name=AAA, dob=2021-03-25]
Employee [id=5, name=BBB, dob=2021-03-25]
Employee [id=4, name=CCC, dob=2021-03-25]
Employee [id=3, name=DDD, dob=2021-03-25]
Employee [id=6, name=EEE, dob=2021-03-25]
Employee [id=2, name=FFF, dob=2021-03-25]
http://www.lbrq.cn/news/762013.html

相关文章:

  • 做网站需要懂哪些语言/网站seo推广计划
  • 龙岗网站/app推广联盟平台
  • 万户网站制作/百度sem是什么意思
  • 同企网站建设做网站/网络营销八大工具
  • 做数据分析好看的网站/培训心得体会范文大全1000字
  • 怎样做免费网站卖东西/指数平滑法
  • 服务建设网站/网页制作的步骤
  • 商城手机网站建设多少钱/四种基本营销模式
  • 企业网站如何优化排名/站长工具网址是多少
  • 网站 水印/谷歌收录提交入口
  • 商城源代码/seo推广方案怎么做
  • 长春怎么注册网站平台/东莞排名优化团队
  • 手机怎么做电子书下载网站/五年级下册数学优化设计答案
  • 仿苹果手机 网站源码/网站首页排名
  • 网站 asp php/干净无广告的搜索引擎
  • 网站构建的基本流程/济南seo排行榜
  • 判断网站cms/手机制作网站app
  • 网站开发建设须知/指数函数图像
  • 网站空间测试/网站推广平台排行
  • 合肥做网站便宜/百度关键词多少钱一个月
  • 网站开发一般要用到哪些软件/百度云搜索引擎入口官方
  • 做网站一万/站长之家端口扫描
  • wdcp更改网站域名/网络优化论文
  • 医院网站如何备案/搜索百度app下载
  • 最专业网站建设公/免费推广网站排行榜
  • 炫酷网站模板免费下载/安徽网络seo
  • 广东广东深圳网站建设/百度霸屏推广靠谱吗
  • 免费建立网站软件/企业网络规划与设计
  • 阿里巴巴国际站网站做销售方案/你对网络营销的理解
  • 网站设计建设公司需要什么资质/线上推广产品
  • 项目日志框架与jar中日志框架冲突 解决
  • [AI React Web] E2B沙箱 | WebGPU | 组件树 | 智能重构 | 架构异味检测
  • kernel pwn 入门(四) ret2dir详细
  • Spark on K8s 在vivo大数据平台的混部实战
  • Wireshark专家模式定位网络故障:14种TCP异常深度解剖
  • 终端安全检测和防御技术