Ich bin neu in Java und versuche, Java-Sammlungen zu lernen und versuche, Arraylist mit vergleichbaren Schnittstelle zu sortieren. Ich folge einigen Tutorials und kann nicht verstehen, was hier in der compareto() Methode passiert. Das ist mein Code.Wie compareTo() Methode funktioniert ArrayList Sortierung
Student.java
package arraylistexample;
public class Student implements Comparable<Student>{
private String studentName;
private int age;
private int rollno;
public Student(String studentName, int age, int rollno){
this.studentName=studentName;
this.age=age;
this.rollno=rollno;
}
public String getStudent(){
return studentName;
}
public int getAge(){
return age;
}
public int getRollno(){
return rollno;
}
public void setStudent(String Student){
studentName=Student;
}
public void setAge(int age){
this.age=age;
}
public void setRollno(int rollno){
this.rollno=rollno;
}
public int compareTo(Student compares) {
int compareage=((Student)compares).getAge();
/* For Ascending order*/
return this.age-compareage;
}
public String toString() {
return "[ rollno=" + rollno + ", name=" + studentName + ", age=" + age + "]";
}
}
ArrayListSorting.java
package arraylistexample;
import java.util.*;
public class ArrayListSorting {
public static void main(String[] args){
ArrayList<Student> obj=new ArrayList<Student>();
obj.add(new Student("Peter", 27,1));
obj.add(new Student("John",26,7));
obj.add(new Student("Jack",21,5));
Collections.sort(obj);
for(Student str:obj){
System.out.println(str);
}
}
}
Das Problem ist, ich kann nicht verstehen, wie caompareto() -Methode in der hier arbeitet. Ich habe gegoogelt und viele Tutorials gelesen. Aber hat keine klare Idee bekommen. Kann mir jemand helfen.
'Collections.sort()' ruft 'compareTo()' auf, um die Elemente der Liste zu vergleichen. – Eran
@Eran Vielen Dank. Dein Kommentar zeigt mir den Weg. :) – Lanka