1 import java.util.TreeSet;
2
3
4 /**
5 * PriorityQueue, TreeSet是排序集合,存储的对象必须实现Comparable接口。
6 * 原因是: Comparable 接口定义了compareTo()方法,它判断类的对象的“自然顺序”。
7 * 如何能将Comparable用来定义对象的自然顺序,以便对象能保存到排序集合中。
8 * 为一个类实现Comparable时,通常应当遵守一个规则:compareTo()的输出必须与equals()的输出一致。
9 * 对每一个equals()返回true的情况,compareTo()都必须返回0.
10 * @author Administrator
11 *
12 */
13
14 class CompDemo {
15 public static void main(String[] args) {
16 TreeSet<Product> prodList = new TreeSet<Product>();
17
18 prodList.add(new Product("Shelf", 13546));
19 prodList.add(new Product("Keyboard tray", 04762));
20 prodList.add(new Product("Desk", 12221));
21 prodList.add(new Product("File Cabinet", 44387));
22
23 System.out.println("Prodects sorted by name:\n");
24 for(Product p:prodList){
25 System.out.printf("%-14s ID: %d\n", p.prodName, p.prodID);
26 }
27 }
28 }
29
30 class Product implements Comparable<Product>{
31
32 String prodName;
33 int prodID;
34
35 public Product(String prodName, int prodID) {
36 this.prodName = prodName;
37 this.prodID = prodID;
38 }
39
40 @Override
41 public int compareTo(Product o) {
42 return prodName.compareToIgnoreCase(o.prodName);
43 }
44
45 @Override
46 public boolean equals(Object obj) {
47 return prodName.compareToIgnoreCase(((Product)obj).prodName) == 0;
48 }
49
50
51 }

最新文章

  1. Debian的软件包管理工具命令 (dpkg,apt-get)详解
  2. 使用 xcode 8 构建版本 iTunes Connect 获取不到应用程序的状态的解决办法
  3. SqlServer索引及优化详解
  4. 排序算法 2 qsort 库函数,泛型函数
  5. mysql笔记05 优化服务器设置
  6. embed标签的使用(在网页中播放各种音频视频的插件的使用)
  7. LoadRunner执行自动化以及报告自动化的方法
  8. vim中光标的前进和后退
  9. AutoResetEvent 详解
  10. 彻底解决Android因加载多个大图引起的OutOfMemoryError,内存溢出的问题
  11. Java Socket编程 标准范例(多线程)
  12. 浅谈通信网络(三)——TCP/IP协议
  13. Shader 入门笔记(一) 如何学习shader
  14. 关于逻辑回归是否线性?sigmoid
  15. redis学习-列表(list)常用命令
  16. mssql sqlserver 规范使用方法分享
  17. echarts.init 使用jq获取初始化对象
  18. P5002 专心OI - 找祖先
  19. (转)TP-LINK WR720N v3 刷OpenWrt
  20. 作业 20181204-4 互评Final版本

热门文章

  1. 常见最基础的Dos命令.
  2. 基于SSM框架的旅游网站
  3. Spring RestTemplate 之中文乱码
  4. python -- 程序异常与调试(异常处理)
  5. python3.7 jack棋牌11点实例
  6. POJ2044 Weather Forecast 题解
  7. a = input(a, yymmdd10.)引发的问题
  8. ASP.NET Core下FreeSql的仓储事务
  9. Centos8 Tomcat 开机自启配置
  10. 数据结构与算法 java描述 第一章 算法及其复杂度