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 }

实现Comparable接口的更多相关文章

  1. 12.Java中Comparable接口,Readable接口和Iterable接口

    1.Comparable接口 说明:可比较(可排序的) 例子:按照MyClass的y属性进行生序排序 class MyClass implements Comparable<MyClass> ...

  2. java中的Comparable接口

    类对象之间比较"大小"往往是很有用的操作,比如让对象数组排序时,就需要依赖比较操作.对于不同的类有不同的语义.如Student类,比较2个学生对象可以比较他们的score分数来评判 ...

  3. comparator接口与Comparable接口的区别

    1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的, 什么是自定义class: 如 public class Pe ...

  4. Comparable接口与Comparator接口的区别

    1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的, 什么是自定义class: 如 public class Pe ...

  5. Comparable接口

    java.util.Arrays类也可以对Object数组进行排序,但是要使用这种方法排序必须实现Comparable接口,此接口就是用于指定对象排序规则的. 设计一个学生类,成绩由高到低排序,成绩相 ...

  6. Java集合中Comparator和Comparable接口的使用

    在Java集合中,如果要比较引用类型泛型的List,我们使用Comparator和Comparable两个接口. Comparable接口 -- 默认比较规则,可比较的 实现该接口表示:这个类的实例可 ...

  7. Java中的Comparable接口和Comparator接口

    Comparator位于包java.util下,比较器,是在集合外部定义排序.Comparable位于包java.lang下,代表当前对象可比较的,是在集合内部实现排序. Comparable代表一个 ...

  8. C#实现Comparable接口实现排序

    C#中,实现排序的方法有两种,即实现Comparable或Comparer接口,下面简单介绍实现Comparable接口实现排序功能. 实现Comparable接口需要实现CompareTo(obje ...

  9. Java之Comparable接口和Comparator接口

    Comparable & Comparator 都是用来实现集合中元素的比较.排序的: Comparable 是在集合内部定义的方法实现的排序: Comparator 是在集合外部实现的排序: ...

  10. 第12条:考虑实现Comparable接口

    CompareTo方法没有在Object中声明,它是Comparable接口中的唯一的方法,不但允许进行简单的等同性比较,而且允许执行顺序比较.类实现了Comparable接口,就表明它的实例具有内在 ...

随机推荐

  1. HTML5-CSS(二)

    一. CSS  文本样式 1.font-size p { font-size: 50px;}解释:设置文本的大小. xx-small.x-small.small.medium.large.x-larg ...

  2. Easyui动态添加控件无法渲染 $.parser.parse()无效

    本文链接:https://blog.csdn.net/huangbaokang/article/details/78367553动态添加easyui控件<input class="ea ...

  3. my.ini修改后启动失败

    修改之后ini文件后不要直接关闭在记事本里点击另存为,编码选择为ANSI编码格式,再保存就行了

  4. python 装饰函数2

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Tue May 5 21:40:49 2020 ...

  5. Prometheus + Alertmanager 实现企微告警

    上一篇:二进制安装Prometheus  下面准备在监控的流程中呈现到告警到企微 查看企业ID,用于后续配置文件 四.安装Alertmanager1.准备安装的包 --选择上面链接给的Linux的ta ...

  6. ABC165C题解

    题目 看题目的时候一脸懵,直到看见数据范围 \[N \le 10,\; M \le 10,\; Q \le 50 \] 之后才意识到问题的严重性. 毕竟数据如此的小,我们完全可以用阶乘复杂度算法卡过去 ...

  7. Virustotal工具产品初研

    一.产品新特点 1.群体智能 2.VT图 3.VT Yara 规则的生成与优化 4.内容搜索优化(大小及提交数量) 二.产品功能 1. --->安全管理员 威胁平台资源丰富 TIP .MISP ...

  8. 【javaFX学习】(三) 控件手册

    移至http://blog.csdn.net/qq_37837828/article/details/78732605 更新 这里写的控件可能不是所有的控件,但是应该是比较齐全并足够用的了,后面还有图 ...

  9. 【动画消消乐|CSS】083.纯CSS实现卡通齿轮效果

    前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出-   自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计 ...

  10. 去掉文件中的^M

    一般情况下用:set ff=unix就可以解决问题,如果无效,用下面的方法手工完成: :%s/[ctrl+v] [ctrl+m]//g ctrl+v表示按住Ctrl键再按下v键.