java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 (即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)) 的总称
这篇文章主要介绍了 JAVA 对 list 集合进行排序 Collections.sort(), 需要的朋友可以参考下
对一个集合中的对象进行排序, 根据对象的某个指标的大小进行升序或降序排序代码如下:
进行降序排列
进行降序排列
- Collections.sort(list, new Comparator < ResultTypeDesc > () {
- public int compare(ResultTypeDesc o1, ResultTypeDesc o2) {
- return o2.getRatio().compareTo(o1.getRatio());
- }
- });
进行升序排列
- Collections.sort(list, new Comparator < ResultTypeDesc > () {
- public int compare(ResultTypeDesc o1, ResultTypeDesc o2) {
- return o1.getRatio().compareTo(o2.getRatio());
- }
- });
经过测试发现, 只需要把两个对象的位置调换一下即可升序或降序
如果指标相同, 根据多个指标进行排序, 需创建一个比较器:
- import java.util. * ;
- public class ComparatorResultType implements Comparator {
- public int compare(Object arg0, Object arg1) {
- ResultTypeDesc desc0 = (ResultTypeDesc) arg0;
- ResultTypeDesc desc1 = (ResultTypeDesc) arg1;
- // 首先比较主指标, 如果主指标相同, 则比较次指标
- int flag = desc0.getXXX().compareTo(desc1.getXXX());
- if (flag == 0) {
- return desc0.getXXX2().compareTo(desc1.getXXX2());
- } else {
- return flag;
- }
- }
- }
- // 测试类中代码:
- ComparatorResultType comparator = new ComparatorResultType();
- Collections.sort(list, comparator);
对 list 集合进行逆输出:
Collections.reverse(list);
ResultTypeDesc 这个为所需的实体类对象, 具体使用结合自己代码情况即可
此方法有可能报空指针, 自己结合情况, 自行解决, 判断是否为 NULL
来源: http://www.phperz.com/article/18/0214/359000.html