谈一谈java中对象的排序
来源:互联网 发布:怎样在电脑上开淘宝店 编辑:程序博客网 时间:2024/06/04 18:39
在java中,想要实现对象的排序,可以让对象实现Comparable借口,一直困扰我的是compareTo函数的含义。
int compareTo(Object O) O − the Object to be compared.
从上面函数的意思可以看出,O的含义是被比较的对象。
假设我们现在要比较的类是:
class Node { public int id; public int year; }
假设我们现在要实现的是对id从小到大排序,如果id相同,则年龄大的优先。
那么代码为:
class Node implements Comparable<Node>{ public int id; public int year; public Node(int id, int year) { this.id = id; this.year = year; } @Override public String toString() { return "Node{" + "id=" + id + ", year=" + year + '}'; } @Override public int compareTo(Node o) { if (id > o.id) return 1; else if (id == o.id){ if (year > o.year) return 1; else return -1; } else return -1; } }
我来试着解释一下为啥么要这么写,大于小于和1,-1的关系是什么
当我们想要对id从小到大排序时,我们比较的是前一个,也就是前面的都是有序的,当此时的id>O.id的时候,也就没有必要进行比较,直接return 0 即可。
当我们想对year从大到小排序时,当year小于O.year的时候,才是满足题意的,也就是此时才return 1,而当year>O.year的时候,应该return -1,也就是需要调增位置。
阅读全文
0 0
- 谈一谈java中对象的排序
- java中对象的排序
- java中对象的排序
- 谈一谈对象
- Java中对象数组的排序
- java中冒泡排序,根据对象的属性,排对象
- JAVA对象的排序
- Java对象的排序
- 谈一谈QTP中正则表达式的应用
- 谈一谈面试中JavaScript的正则问题
- 谈一谈PHP中数组元素的遍历
- JAVA中根据集合中对象属性排序的方法
- butterknife源码分析:谈一谈Java的注解
- java集合中对象排序
- Java集合中对象排序
- Java集合中对象排序
- 谈一谈排序算法
- java中对于复杂对象排序的模型及其实现
- 高德地图纠偏不准,祭出我自己的纠偏算法
- 推荐几个精致的前端web UI框架
- 大数相加
- kotlin集合操作符——总数操作符
- ES6 箭头函数链式调用
- 谈一谈java中对象的排序
- python抓取网页中图片并保存到本地
- [SCOI2005]最大子矩阵
- SSD: Single Shot MultiBox Detector
- 客户端配置文件优化策略
- CSDN全屏编辑文章
- 获取在线帮助
- 数据结构学习笔记(9)---已知二叉树的遍历序列,恢复二叉树
- Yii2中hasMany用法示例