java list根据两个字段进行排序

如果是根据单个字段排序,lambda表达式就可以,使用的是stream().sorted()方法

对两个或多个,使用List自带的sort方法,根据业务要求自行调整优先排序字段

public static List<Person> sortByNameAndAge(List<Person> list){
        list.sort(new Comparator<Person>() {
            @Override
            public int compare(Person o1, Person o2) {
                if (o1.getName().compareTo(o2.getName()) > 0){
                    return 1;
                }else if (o1.getName().compareTo(o2.getName()) < 0){
                    return -1;
                }else {
                    if (o1.getAge() > o2.getAge()){
                        return 1;
                    }else {
                        return -1;
                    }
                }
            }
        });
        return list;
    }

以上代码的意思是:现根据姓名排序,如果姓名一样,就根据年龄排序,排完序后的集合呈现姓名优先,年龄其次的升序排列

你可能感兴趣的:(功能性代码,java,开发语言)