博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
comparable的compareTo( )方法 日常
阅读量:4966 次
发布时间:2019-06-12

本文共 3504 字,大约阅读时间需要 11 分钟。

项目过程中遇到 类的排序 可以用这个类实现Comparable接口 ,重写comparaeTo方法来对这个类进行排序

在这个方法中 如果返回-1,则当前对象排在前面,如果返回1 ,则当前对象排在后面 ,返回0 .则相等

多的不说 直接上代码

实体类 :Student import java.text.SimpleDateFormat; import java.util.Date; /**  * @authot Administrator  * @create 2018-05-20 13:43  */ public class Student  implements Comparable
{
private Integer number; private Double money; private Date createdate; public Student (Integer number,Double money,Date createdate) {
this.number = number; this.money = money; this.createdate = createdate; } public Integer getNumber() {
return number; } public Student setNumber(Integer number) {
this.number = number; return this; } public Double getMoney() {
return money; } public Student setMoney(Double money) {
this.money = money; return this; } public Date getCreatedate() {
return createdate; } public Student setCreatedate(Date createdate) {
this.createdate = createdate; return this; } @Override public String toString() {
return "number:"+number+";money:"+money+";createdate:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createdate); } @Override public int compareTo(Student o) {
if (this.number > o.number) {
return -1; }else if (this.number < o.number) {
return 1; }else{
if (this.money > o.money) {
return 1; }else if (this.money < o.money) {
return -1; }else {
return this.createdate.compareTo(o.createdate); } } } }

 里面三个字段 ,数量,总额,和创建时间 先比较数量 再比较总额 ,最后比较时间,一般到时间维度也就比较出来了

在比较时间的维度 的时候直接使用compareTo方法 因为在日期类中已经对compareTo方法做了重写 所以可以直接比较

测试类:

import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; public class Main {
public static void main(String[] args) throws Exception{
List
students = new ArrayList
(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); students.add(new Student(1,400.0,format.parse("2018-05-20 13:01:02"))); students.add(new Student(2,300.0,format.parse("2018-05-20 13:20:02"))); students.add(new Student(3,200.0,format.parse("2018-05-20 13:14:02"))); students.add(new Student(4,100.0,format.parse("2018-05-20 13:16:02"))); students.add(new Student(5,500.0,format.parse("2018-05-20 13:08:02"))); students.add(new Student(5,500.0,format.parse("2018-05-20 13:08:03"))); students.add(new Student(3,500.0,format.parse("2018-05-20 13:08:02"))); students.add(new Student(1,600.0,format.parse("2018-05-20 13:08:02"))); Collections.sort(students); for (Student student : students) {
System.out.println(student); } } }

运行结果如下:

number:5;money:500.0;createdate:2018-05-20 13:08:02

number:5;money:500.0;createdate:2018-05-20 13:08:03
number:4;money:100.0;createdate:2018-05-20 13:16:02
number:3;money:200.0;createdate:2018-05-20 13:14:02
number:3;money:500.0;createdate:2018-05-20 13:08:02
number:2;money:300.0;createdate:2018-05-20 13:20:02
number:1;money:400.0;createdate:2018-05-20 13:01:02
number:1;money:600.0;createdate:2018-05-20 13:08:02

 

第一次写博客希望可以对你得到帮助,多多指教

 

转载于:https://www.cnblogs.com/lmtdb/p/9063458.html

你可能感兴趣的文章
linux命令学习 不断更新
查看>>
ionic 弹窗(alert, confirm)
查看>>
C++中虚继承的作用及底层实现原理
查看>>
IOS网络访问之NSURLConnection
查看>>
css让背景颜色与背景图片同时显示
查看>>
如何解决vuex因浏览器刷新数据消失,保持数据持久化问题?
查看>>
特征选择
查看>>
Js 通过点击改变css样式
查看>>
WebApi传参总动员(三)
查看>>
HTML5+Bootstrap 学习笔记 3
查看>>
某考试 T3 C
查看>>
[Lydsy1806月赛] 超速摄像头
查看>>
[BZOJ3449] [Usaco2014 Feb]Secret Code
查看>>
XHTML与HTML区别
查看>>
软考-程序设计语言基础(编译原理)
查看>>
2016峰会:项目管理与高级项目管理(广州站)
查看>>
用JAVA编写浏览器内核之实现javascript的document对象与内置方法
查看>>
linux 命令之top
查看>>
有关远程设置的问题
查看>>
BZOJ 1800: [Ahoi2009]fly 飞行棋
查看>>