MST

星途 面试题库

面试题:Java中如何使用Collections对List进行排序并实现自定义排序规则

在Java集合框架中,给定一个包含自定义对象的List,例如List<Student>,Student类有name(字符串类型)和age(整型)两个属性。请编写代码使用Collections工具类对这个List进行排序,排序规则是先按age升序,如果age相同则按name的字典序升序。
31.9万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
import java.util.*;

class Student {
    private String name;
    private int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

public class Main {
    public static void main(String[] args) {
        List<Student> studentList = new ArrayList<>();
        studentList.add(new Student("Alice", 20));
        studentList.add(new Student("Bob", 18));
        studentList.add(new Student("Charlie", 20));

        Collections.sort(studentList, new Comparator<Student>() {
            @Override
            public int compare(Student s1, Student s2) {
                int ageComparison = Integer.compare(s1.getAge(), s2.getAge());
                if (ageComparison != 0) {
                    return ageComparison;
                } else {
                    return s1.getName().compareTo(s2.getName());
                }
            }
        });

        for (Student student : studentList) {
            System.out.println("Name: " + student.getName() + ", Age: " + student.getAge());
        }
    }
}