3.5 Comparable的用法
马克-to-win:前面讲过进入TreeSet的每个元素是都排了序的,如果被添加的元素是我们自己定义的,就需要告诉TreeSet排序的规则,这个规则就要在Comparable中定义。在下面的例子中, 当我们要往TreeSet中添加我们自己定义的类Worker对象时,就在compareTo中定义排序规则。
例:3.5.1
/*why in the past never implements Comparable? becasue Integer claas and
String class both implements this Comparable.
java.lang.Object
java.lang.String
All Implemented Interfaces:
CharSequence, Comparable, Serializable
*/
import java.util.*;
//Comparable接口在java.lang包中定义
//定义的方法:
//int compareTo(Object o);
//实现该接口就可以实现按用户定义的自然顺序排列对象。
/*you must implements Comparable,otherwise, when you add the second element into
the treeset, it will report error, because it will search for Comparable
interface. */
class Worker implements Comparable {
int workNum;
String name;
int money;
public Worker(int workNum, String name, int money) {
this.workNum = workNum;
this.name = name;
this.money = money;
}
// 按工资排序
/*
* public int compareTo(Object o) Returns: a negative integer, zero, or a
* positive integer as this object is less than, equal to, or greater than
* the specified object. it looks like that the one that is in front is
* small. what if two keys are the same? only print out one item.
*/
public int compareTo(Object o) {
Worker e = (Worker) o;
return money - e.money;//到底谁减谁,讲师如想搞清楚,请听配套视频里的仔细分析。
// return workNum - e.workNum;
}
}
更多内容请见原文,原文转载自:https://blog.csdn.net/qq_43650923/article/details/100831985
相关文章
- 09-07关于Unity中的刚体和碰撞器的相关用法(二)
- 09-07用Java将XML文档保存在数据库中(Hibernate和JAXB的组合)
- 09-07Python3中reduce和lambda的用法
- 09-07Python中print用法里面% ,"%s 和 % d" 代表的意思
- 09-07sklearn中predict_proba用法(注意和predict的区别)
- 09-07C++/C中的struct和typedef struct用法和区别
- 09-07Java中的原子性和内存顺序
- 09-07关于Unity中的刚体和碰撞器的相关用法(一)
- 09-07python中的数字取整(ceil,floor,round)概念和用法
- 09-07Pytorch中randn和rand函数的用法