对List集合进行排序

Posted sharpest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对List集合进行排序相关的知识,希望对你有一定的参考价值。

转自:https://www.cnblogs.com/wslook/p/9385871.html

一、说明

  • 使用Collections工具类的sort方法对list进行排序
  • 新建比较器Comparator

二、代码

排序:

技术图片
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);
    }
}
技术图片

 

Student类:

技术图片
class Student{

    private int age;

    public int getAge() {
        return age;
    }

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

以上是关于对List集合进行排序的主要内容,如果未能解决你的问题,请参考以下文章

如何对List集合中的对象进行排序?

C# 集合及集合内排序 问题 速求

如何对Scala中集合进行排序?

2018.9.26 如何对List集合中的元素进行排序?

如何对List集合中的对象进行按某个属性排序

集合List根据多个字段进行排序