2 csdnzlw csdnzlw 于 2016.04.18 14:16 提问

java 如何对 list 对象降序排列
package test.tool.gui.dbtool.util;  

import java.util.ArrayList;  
import java.util.Collections;  
import java.util.Comparator;  
import java.util.List;  

public class Test {  

    public static void main(String[] args) {  

        List<Student> list = new ArrayList<Student>();  

        //创建3个学生对象,年龄分别是20、19、21,并将他们依次放入List中  
        Student s1 = new Student();  
        s1.setAge(20);  
        Student s2 = new Student();  
        s2.setAge(19);  
        Student s3 = new Student();  
        s3.setAge(21);  
        list.add(s1);  
        list.add(s2);  
        list.add(s3);  

        System.out.println("排序前:"+list);  

        Collections.sort(list, new Comparator<Student>(){  

            /*  
             * int compare(Student o1, Student o2) 返回一个基本类型的整型,  
             * 返回负数表示:o1 小于o2,  
             * 返回0 表示:o1和o2相等,  
             * 返回正数表示:o1大于o2。  
             */  
            public int compare(Student o1, Student o2) {  

                //按照学生的年龄进行升序排列  
                if(o1.getAge() > o2.getAge()){  
                    return 1;  
                }  
                if(o1.getAge() == o2.getAge()){  
                    return 0;  
                }  
                return -1;  
            }  
        });   
        System.out.println("排序后:"+list);  
    }  
}  
class Student{  

    private int age;  

    public int getAge() {  
        return age;  
    }  

    public void setAge(int age) {  
        this.age = age;  
    }  
    @Override  
    public String toString() {  
        return getAge()+"";  
    }  
}  

    如何对上面代码按年龄降序排列。

5个回答

CSDNXIAON
CSDNXIAON   2016.04.18 14:22

Java TreeMap 升序|降序排列
java 之list集合按照字段升序或降序
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

eyishion
eyishion   2016.04.19 13:15
longxingzhe001
longxingzhe001   2016.04.19 13:29
zx510416
zx510416   2016.04.19 17:31

集合排序问题,建议用Java的Stream来处理,是非常方便的,题主可以试试
我直接使用你创建好的list为例举例以下代码:

list = list.stream().sorted(Comparator.comparing(Student::getAge).reversed()).collect(Collectors.toList());

排序就完成了,代码是很简答,很优雅的
解释一下
list.stream(): 是把list集合转化为stream集合
sorted(): 进行排序,其中Comparator.comparing(Student::getAge)表示按照年纪排序,.reversed()表示是逆序,因为默认情况下,不加.reversed 是升序的
collect(Collectors.toList()): 再次将排序后的stream集合转化为list集合

其实不用解释,这一行代码的逻辑也是很清楚的,建议题主可以看看Java的新特性Stream,可能会对你有很大帮助,这种声明式的写法比原始的Java的命令式的写法更优雅和易懂

wu01234567
wu01234567   2016.04.20 17:09

降序处理一下就好啦,嗯,是的,就是这样,降序处理一下!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java list集合数据升序降序排序
1,Sting类型的List集合排序 List list=new ArrayList         list.add("易皇星");         list.add("阿弟");         list.add("冰球");         list.add("崇明");         list.add("邓小平");         //升序         //注意
java List集合中的对象根据属性降序/升序排序
public class TestAmount { public static void main(String[] args) { List list = new ArrayList(); //创建3个对象,金额分别是7000、9000、8000,6000并将他们依次放入List中           Amount a1 = new Amount();           a1.set
ArrayList排序 降序排列
public class Person { String name; int age; public Person(String name, int age) { this.name = name; this.age = age; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName()
List中对象按照属性时间升序排序
List集合中按照对象时间属性升序排序
java 之list集合按照字段升序或降序
实体类我就不写了,直接上数据吧! List<PersionInfo> list=new ArrayList<>(); PersionInfo info1=new PersionInfo("555","33","333"); PersionInfo info2=new PersionInfo("222","44","22"); PersionInfo info3=new PersionInfo("44
list<bean>将集合按照bean中的某个字段降序排列
brands2是一个list《brand》集合,brand是一个bean,里面包含clickTimes这个字段,按照这个字段降序排列 Collections.sort(brands2, new Comparator<Brand>(){ public int compare(Brand o1, Brand o2) { //按照点击次数降序排列
Map的value值降序排序与升序排序(java)
程序package test;import java.util.Collections; import java.util.Comparator; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Tree
对数据进行升序\降序排序
首先设置两个按钮,一个从低到高,一个从高到低 bu_dg = view. findViewById(R.id.bu_dg); bu_gd = view .findViewById(R.id.bu_gd); bu_dg.setOnClickListener(this); bu_gd.setOnClickListener(this);//设置点击事件 进行判断 switc
Java的数组和list升序,降序,逆序函数Collections.sort和Arrays.sort的使用
list升序,降序,逆序 List list =new ArrayList(); //如果list是 5 7 2 6 8 1 4 1、升序: Collections.sort(list) //list: 1 2 4 5 6 7 8 2、降序: Collections.sort(list,Collections.reverseOrder())//list:8 7 6 5 4 2 13、逆序
对JSON集合 某个键进行升序/降序排列
$(document).ready(function () {       //对json进行降序排序函数       var colId="age"       var desc = function(x,y)       {           return (x[colId]  y[colId]) ? 1 : -1       }       //对json进行升序排序函数