对集合使用Comparator
1 import java.util.Comparator; 2 import java.util.PriorityQueue; 3 4 /** 5 * 对集合使用Comparator,不改变对象的自然顺序 6 * @author Administrator 7 * 8 */ 9 public class PriMsgQDemo { 10 public static void main(String[] args) { 11 Message m; 12 //自然顺序排列 13 PriorityQueue<Message> pq = new PriorityQueue<Message>(3); 14 15 pq.add(new Message("Message at main office at 3pm", Message.PLevel.Low)); 16 pq.add(new Message("Fire in warehouse!", Message.PLevel.High)); 17 pq.add(new Message("Report due Tuesday", Message.PLevel.Medium)); 18 19 System.out.println("Message in natural-order priority: "); 20 while((m = pq.poll()) != null){ 21 System.out.println(m.msg+"Priority: " + m.priority); 22 } 23 System.out.println(); 24 //使用比较器 25 PriorityQueue<Message> pqRev = new PriorityQueue<Message>(3, new RevMsgComparer()); 26 27 pqRev.add(new Message("Message at main office at 3pm", Message.PLevel.Low)); 28 pqRev.add(new Message("Fire in warehouse!", Message.PLevel.High)); 29 pqRev.add(new Message("Report due Tuesday", Message.PLevel.Medium)); 30 31 System.out.println("Message in reverse-order priority: "); 32 while((m = pqRev.poll()) != null){ 33 System.out.println(m.msg+"Priority: " + m.priority); 34 } 35 } 36 } 37 38 class Message implements Comparable<Message>{ 39 40 String msg; 41 enum PLevel { 42 High, Medium, Low 43 } 44 45 PLevel priority; 46 public Message(String str, PLevel pri) { 47 msg = str; 48 priority = pri; 49 } 50 51 @Override 52 public int compareTo(Message o) { 53 return priority.compareTo(o.priority); 54 } 55 56 } 57 58 class RevMsgComparer implements Comparator<Message>{ 59 60 @Override 61 public int compare(Message o1, Message o2) { 62 return o2.priority.compareTo(o1.priority); 63 } 64 65 }
转载于:https://www.cnblogs.com/wanghui390/p/3726956.html
对集合使用Comparator相关推荐
- Java学习(90)Java集合排序——Comparator接口介绍、案例:对宠物猫分别按名字升序、年龄降序进行排列
Java集合排序--Comparator接口介绍.案例:对宠物猫分别按名字升序.年龄降序进行排列 Comparator接口介绍 1. Comparator接口: 2. Comparator接口中的co ...
- 集合框架-Comparator和Comparable的区别
Comparator也叫外部比较器,常在使用Collections工具类进行集合排序的时候使用.外部比较器Comparator可以理解为一个专用的比较器,当集合中的对象不支持自比较或者比较的功能不能满 ...
- 利用Collections.sort方法重写Comparator接口的compare方法对list集合排序
Collections.sort()使用该方法实际是重写Comparator接口的compare方法实现排序://传入参数list集合,Comparator接口 T:list的元素类型 //如List ...
- Java中的Collection集合以及Collection集合实现类实例
Collection集合 集合概述 集合的体系特点 Collection集合常用API Collection集合的遍历方式 方式一:迭代器 方式二:foreach/增强for循环 方式三:lambda ...
- Java SE基础知识详解第[12]期—集合(Set、Collections、Map、集合嵌套)
写在前面: 每一个不曾起舞的日子,都是对生命的辜负. 希望看到这里的每一个人都能努力学习,不负韶华,成就更好的自己. 以下仅是个人学习过程中的一些想法与感悟,Java知识博大精深,作为初学者,个人能力 ...
- Java进阶(七)Set系列集合、Map集合体系
七.Set系列集合.Map集合体系 需要学会什么? Set系列集合的特点:Set系列集合的特点和底层原理. 集合工具类Collections:快速的对集合进行元素的添加.排序等操作. 综合案例:把Co ...
- JAVA基础加强篇08——集合
集合概述 集合和数组都是容器. 数组的特点 数组定义完成并启动后, 类型确定.长度固定. 在进行增删数据操作的时候,数组是不太合适的,增删数据都需要放弃原有数组或者移位. 数组适合的场景 当业务数据的 ...
- Java程序设计--集合(下)(十三)
集合 1.Set系列集合 1.1 Set系列集合概述 1.2 HashSet元素无序的底层原理 1.3 HashSet元素去重复的底层原理 1.4 实现类:LinkedHashSet 1.5 实现类: ...
- 集合(Set、Collections、Map、集合嵌套)
目录 Set系列集合 Set系列集合概述 HashSet元素无序的底层原理:哈希表 HashSet元素去重复的底层原理 实现类:LinkedHashSet 实现类:TreeSet Collection ...
最新文章
- IOS开发笔记13-Object-C中的NSString
- Java枚举原来还能这么用
- python的pandas方法_python使用Pandas处理数据的方法
- MFC中的消息处理函数
- 数据分析学习笔记4-----处理缺失数据
- 干货来袭!游戏建模初学者该怎样学习?
- MySQL数据库的安装及环境配置
- IPv6-IPv4过渡技术详解及配置实例
- 6种微服务RPC框架,你知道几个?
- jrtplib-2.11.2和jthread-1.3.3编译笔记
- A级学科计算机技术,东南大学a类学科排名!附东大a类学科名单
- 图文详解PCB生产工艺流程
- 用数据告诉你:中国最网红的城市在哪里
- GNSS与GPS/北斗指的是什么
- 业界最全的iOS包瘦身技术实践总结
- DNT精英论坛(暨.NET北京俱乐部)第2期:.NET依赖注入在区块链项目AElf中的实践
- python:maya 一个人性化的时间处理库
- 研究型论文框架及阅读文献方法
- Ubuntu 20.04 系统5分钟后老是自动锁屏怎么取消?
- 大数据基础之常用Linux命令
热门文章
- 网站的次导航是什么?对网站优化有什么好处?
- 网站栏目页要如何进行优化呢?
- 网络公司千千万,放心委托看这里!
- 搜索引擎蜘蛛为什么对网站不爬行呢?
- 微信小程序页面上面的名字怎么改_微信小程序改名方法,小程序名称设置规范...
- oracle dbms refresh,oracle 10g中dbms_mview.refresh()函数
- python和java和scala_有没有与python3相当的scala/java收藏。国家
- java axis2 jar_Java axis2.jar包详解及缺少jar包错误分析
- 奔跑吧Linux内核 入门篇(第二版)遇到问题发
- Fuzzy C Means 算法及其 Python 实现——写得很清楚,见原文