根据list对象的某一个属性进行排序

java中Collections.sort方法可以根据list中对象(或者map)的某个属性进行排序

import com.td.cms.entity.Question;

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

/**
 * Created by Jerry on 2017/2/7.
 * God Bless Me
 */
public class test {
    public static void main(String[] args) {

        List<Question> questions = new ArrayList<>();
        Question q1 = new Question();
        Question q2 = new Question();
        Question q3 = new Question();

        q1.setQuesNum(1);
        q2.setQuesNum(3);
        q3.setQuesNum(2);

        questions.add(q1);
        questions.add(q2);
        questions.add(q3);

        Collections.sort(questions, new Comparator<Question>(){

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

                //按照学生的年龄进行升序排列
                if(o1.getQuesNum() > o2.getQuesNum()){
                    return 1;
                }
                if(o1.getQuesNum() == o2.getQuesNum()){
                    return 0;
                }
                return -1;
            }
        });
        for (Question question : questions) {
            System.out.println(question.getQuesNum());
        }
    }
}

猜你喜欢

转载自blog.csdn.net/zr527397749/article/details/54907020