Wie sortiere ich ArrayList mit Comparator? [Duplikat]

Diese Frage hat hier bereits eine Antwort:

Sortieren Sie ArrayList von benutzerdefinierten Objekten nach Eigenschaft 25 Antworten

Ich habe einen Kursteilnehmer, der eine statische Methode implementiert

public static Comparator<Student> getCompByName()

Das gibt ein neues Komparatorobjekt für Student zurück, das 2 Students-Objekte mit dem Attribut 'name' vergleicht.

Ich muss dies jetzt testen, indem ich die ArrayList eines Schülers mit meiner Funktion getCompByName () nach 'Name' sortiere.

Hier ist meine Comparator-Methode in meiner Student-Klasse.

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;
}  

Und Main wo ich testen muss

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

Kann mir jemand zeigen, wie ich getCompByName () in meinem Hauptverzeichnis verwenden würde, um die ArrayList tatsächlich nach Namen zu sortieren? Ich bin neu für Komparatoren und habe es schwer mit ihren Verwendungen. Die Methode gibt einen Komparator zurück, daher bin ich nicht sicher, wie dies implementiert wird. Ich weiß, ich muss getCompByName () verwenden, um zu sortieren, ich bin nur nicht sicher, wie ich es implementieren soll.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage