Как отсортировать ArrayList с помощью Comparator? [Дубликат]

На этот вопрос уже есть ответ здесь:

Сортировать ArrayList пользовательских объектов по свойству 25 ответов

У меня есть ученик класса, который реализует статический метод

public static Comparator<Student> getCompByName()

это возвращает новый объект компаратора для Студента, который сравнивает 2 объекта Студента по атрибуту 'имя'.

Теперь мне нужно проверить это, отсортировав ArrayList студентов по «имени», используя мою функцию getCompByName ().

Вот мой метод сравнения в моем классе ученика.

public static Comparator<Student> getCompByName()
{   
 Comparator comp = new Comparator<Student>(){
     @Override
     public int compare(Student s1, Student s2)
     {
         return s1.name.compareTo(s2.name);
     }        
 };
 return comp;
}  

И главное где мне нужно проверить

public static void main(String[] args)
{
    // TODO code application logic here

    //--------Student Class Test-------------------------------------------
    ArrayList<Student> students = new ArrayList();
    Student s1 = new Student("Mike");
    Student s2 = new Student("Hector");
    Student s3 = new Student("Reggie");
    Student s4 = new Student("zark");
    students.add(s1);
    students.add(s2);
    students.add(s3);
    students.add(S4);

    //Use getCompByName() from Student class to sort students

Может кто-нибудь показать мне, как я использовал бы getCompByName () в моем main, чтобы фактически отсортировать ArrayList по имени? Я новичок в компараторах и с трудом справляюсь с их использованием. Метод возвращает компаратор, поэтому я не уверен, как это будет реализовано. Я знаю, что мне нужно использовать getCompByName () для сортировки, я просто не уверен, как это реализовать.

Ответы на вопрос(2)

Ваш ответ на вопрос