Java实现自定义对象的排序
来源:互联网 发布:linux 服务器 反应慢 编辑:程序博客网 时间:2024/05/18 02:49
下面是对自定义User对象排序的代码:
出现了下面的异常:
很明显,Java中不允许直接对自定义的对象调用sort直接排序,需要实现Comparable接口。按照上面的方法改造一下User.java
方法一:让User对象实现Comparable接口
调用方法:
Collections.sort(users);
方法二:User对象不作任何改动,添加一个比较器UserComparator.java
调用方法:
Collections.sort(users, new UserComparator());
结果如下:
顺便说一下Comparable和Comparator的区别:
1. Comparable和Comparator都是用来实现集合中元素的比较、排序的,只是Comparable是在集合内部定义的方法实现的排序,Comparator是在集合外部实现的排序,所以想要实现排序,就需要在集合外定义Comparator接口或在集合内实现Comparable接口两种方法。
2. Comparable实现的排序只能是自然排序,这里的自然顺序就是实现Comparable接口设定的排序方式(Demo是按照年龄从小到大排序)。而Comparator是一个专用的比较器,当这个对象不支持自比较或者自比较函数不能满足你的要求时,你可以写一个比较器来完成两个对象之间大小的比较。比如说,如果把上面的UserComparator.java的方法改为:
输出的结果则是倒序的(年龄从大到小)可以说一个是自已完成比较,一个是外部程序(自定义比较规则)实现比较的差别而已。
阅读全文
0 0
- Java实现自定义对象的排序
- Java实现自定义对象的排序
- Java入门学习: Java对象自定义排序的实现
- java实现对象的排序
- java实现对象的排序
- java排序对象实现
- java实现对象排序
- java实现对象排序
- 如何实现自定义类对象数组的排序
- 如何实现自定义类对象数组的排序
- Comparable接口实现自定义对象的排序功能
- java中的list自定义排序以及倒排序的实现
- java 如何对自定义的对象进行排序
- java 集合中自定义对象的几种排序方法
- 自定义对象数组的排序
- 实体对象的自定义排序
- Java自定义实现Comparable接口的类,实现多维排序
- 【Java】Treeset实现自定义排序
- sqoop初学习
- 生活小记21
- JAVA 单继承 与 接口 多重继承
- C++基础知识点总结四
- 我的Java设计模式-建造者模式
- Java实现自定义对象的排序
- [自然语言处理] (4) Word2Vec
- Calling python method from C++ (or C) callback
- Android 经典笔记七 全局弹窗Dialog
- Xilinx Vivado的使用详细介绍(3):使用IP核
- 51 nod 1107 斜率小于0的连线数量
- 域控问题汇总
- Java——生产者消费者中多线程安全问题
- BZOJ 1207 [HNOI2004]打鼹鼠 动态规划