实现Comparable接口
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接口的更多相关文章
- 12.Java中Comparable接口,Readable接口和Iterable接口
1.Comparable接口 说明:可比较(可排序的) 例子:按照MyClass的y属性进行生序排序 class MyClass implements Comparable<MyClass> ...
- java中的Comparable接口
类对象之间比较"大小"往往是很有用的操作,比如让对象数组排序时,就需要依赖比较操作.对于不同的类有不同的语义.如Student类,比较2个学生对象可以比较他们的score分数来评判 ...
- comparator接口与Comparable接口的区别
1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的, 什么是自定义class: 如 public class Pe ...
- Comparable接口与Comparator接口的区别
1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的, 什么是自定义class: 如 public class Pe ...
- Comparable接口
java.util.Arrays类也可以对Object数组进行排序,但是要使用这种方法排序必须实现Comparable接口,此接口就是用于指定对象排序规则的. 设计一个学生类,成绩由高到低排序,成绩相 ...
- Java集合中Comparator和Comparable接口的使用
在Java集合中,如果要比较引用类型泛型的List,我们使用Comparator和Comparable两个接口. Comparable接口 -- 默认比较规则,可比较的 实现该接口表示:这个类的实例可 ...
- Java中的Comparable接口和Comparator接口
Comparator位于包java.util下,比较器,是在集合外部定义排序.Comparable位于包java.lang下,代表当前对象可比较的,是在集合内部实现排序. Comparable代表一个 ...
- C#实现Comparable接口实现排序
C#中,实现排序的方法有两种,即实现Comparable或Comparer接口,下面简单介绍实现Comparable接口实现排序功能. 实现Comparable接口需要实现CompareTo(obje ...
- Java之Comparable接口和Comparator接口
Comparable & Comparator 都是用来实现集合中元素的比较.排序的: Comparable 是在集合内部定义的方法实现的排序: Comparator 是在集合外部实现的排序: ...
- 第12条:考虑实现Comparable接口
CompareTo方法没有在Object中声明,它是Comparable接口中的唯一的方法,不但允许进行简单的等同性比较,而且允许执行顺序比较.类实现了Comparable接口,就表明它的实例具有内在 ...
随机推荐
- 前端开发入门到进阶第三集【js进行url解析】
https://www.cnblogs.com/yuanzhiguo/p/8241644.html
- JavaScript学习笔记:你必须要懂的原生JS(一)
1.原始类型有哪几种?null是对象吗?原始数据类型和复杂数据类型存储有什么区别? 原始类型有6种,分别是undefined,null,bool,string,number,symbol(ES6新增) ...
- AntDesignBlazor 学习笔记
AntDesignBlazor是基于 Ant Design 的 Blazor 实现,开发和服务于企业级后台产品.我的 Blazor Server 学习就从这里开始,有问题可以随时上 Blazor 中文 ...
- Zookeeper简介(五)
1.定义 Zookeeper:是一个分布式的,开发源码的分布式应用程序协调服务,是hadoop的子项. 2. 特点 具有高可靠性,可扩展性,分布式,可配置的协调机制. 3. 作用 3.1 数据发布与订 ...
- [考试总结]noip模拟14
咕掉了好长时间,现在终于回来了.. 这次考试炸裂得很完蛋,直接分数上天. \(T1\) 本来想打一个记忆化搜索,然而老是通过不了样例,然后就挂了,只剩下了垃圾的 \(30pts\) 部分分数. 然而到 ...
- python项目案例
python项目案例1:----此学习案例用python3编写,摘自明日科技,感谢! 学生管理系统: 功能描述:具有增删改查,排序,保存并显示学生的全部信息. 1.主界面---函数menu(),显示功 ...
- 前后端数据交互利器--Protobuf
Protobuf 介绍 Protocol Buffers(又名 protobuf)是 Google 的语言中立.平台中立.可扩展的结构化数据序列化机制. https://github.com/prot ...
- Kibana未授权访问(5601)
漏洞检测 http://172.16.16.212:5601/app/kibana#/ 无需账号密码可以登录进入界面.
- Hybrid接口
目录 一.Hybrid接口 1.1 VLan的基本概念 1.2 Hybrid接口特点 1.3 Hybrid接口工作原理 1.4 Hybrid配置 一.Hybrid接口 1.1 VLan的基本概念 特点 ...
- 攻防世界pwn高手区——pwn1
攻防世界 -- pwn1 攻防世界的一道pwn题,也有一段时间没有做pwn了,找了一道栈题热身,发现还是有些生疏了. 题目流程 拖入IDA中,题目流程如图所示,当v0为1时,存在栈溢出漏洞.在gdb中 ...