Interface Comparable Java
Interface Comparable
Comparable adalah sebuah generic interface yang dapat membandingkan suatu object dengan object lain dari class yang sama. Misalnya membandingkan angka, membandingkan string dll.. Jika sebuah class mengimplementasikan interface comparable maka instance object dari class tersebut dapat dibandingkan. Ketika sebuah object dapat dibandingkan maka object tersebut dapat diurutkan dengan menggunakan bawaan method pengurutan dijava. Method tersebuat dapat mengurutkan sekumpulan object.
package java.lang;
public interface Comparable<T> {
public int compareTo(T o) {
}
}
Didalam interface comparable terdapat satu method compareTo(T o). Method ini digunakan untuk membandingkan object saat ini dengan object parameter, hasil dari perbandingan mengembalikan bilangan bulat int
- bilangan positif 1: Artinya object yang dibandingkan lebih besar dari object parameter
- bilangan negatif -1: Artinya object yang dibandingkan lebih kecil dari object parameter
- bilangan nol 0: Artinya object yang dibandingkan sama
Implements Interface Comparable
Contoh sederhana membandingkan object dengan object lain dari kelas yang sama.
public class Student implements Comparable<Student> {
private String name;
private int gradeFinal;
public Student(String name, int gradeFinal) {
this.name = name;
this.gradeFinal = gradeFinal;
}
public String getName() {
return name;
}
public int getGradeFinal() {
return gradeFinal;
}
@Override
public int compareTo(Student o) {
if(getGradeFinal() > o.getGradeFinal()) {
return 1;
}
else if(getGradeFinal() < o.getGradeFinal()) {
return -1;
}
else
return 0;
}
}
public class Main {
public static void main(String[] args) {
Student student1 = new Student("Student1", 90);
Student student2 = new Student("Student2", 100);
System.out.println("RESULT COMPARE TO:: "+student1.compareTo(student2));
}
}
Output:
RESULT COMPARE TO:: -1
public class Main {
public static void main(String[] args) {
Student[] students = {
new Student("student1", 90),
new Student("student2", 100),
new Student("student3", 80),
new Student("student4", 70),
};
for(var student : students) {
System.out.print(student.getGradeFinal()+" ");
}
System.out.println("Setelah diurutkan");
Arrays.sort(students);
for(var student : students) {
System.out.print(student.getGradeFinal()+" ");
}
}
}
Output:
90 100 80 70
Setelah diurutkan
70 80 90 100
Jadi jika kita ingin membandingkan satu object dengan object lain gunakan method compareTo(T)
Posting Komentar