Java Comparator Interface: Panduan Lengkap – Codewithaden

Java Comparator Interface digunakan untuk mengurutkan array atau daftar objek berdasarkan pesanan khusus. Pemesanan elemen khusus diberlakukan dengan mengimplementasikan metode pembanding.

Java Comparator Interface

Antarmuka pembanding di Java digunakan untuk memesan objek kelas yang ditentukan pengguna. Objek pembanding mampu membandingkan dua objek dari dua kelas yang berbeda.

Java Comparator Interface melakukan pemesanan total objek yang mungkin tidak memiliki pemesanan alami. Misalnya, urutan alami dapat dipesan oleh ID siswa untuk daftar objek siswa.

Tetapi dalam aplikasi kehidupan nyata, kami mungkin ingin mengurutkan daftar siswa berdasarkan nama depan mereka, tanggal lahir, atau hanya kriteria lainnya. Dalam kondisi seperti itu, kita perlu menggunakan antarmuka pembanding.

Penggunaan pembanding java

Urutkan array atau daftar objek di mana kami tidak dapat memodifikasi kode sumber objek untuk mengimplementasikan yang sebanding antarmuka. Java Comparator menyediakan beberapa urutan penyortiran, yaitu, elemen dapat diurutkan atau diklasifikasikan berdasarkan angka apa pun, yang merupakan nomor roll, usia, nomor ID, dll.

Metode antarmuka pembanding java

metodeKeterangan
Public int Compare (Object Obj1, Object Obj2)Ini membandingkan objek pertama dengan objek kedua.
Public Boolean Equals (Object Obj)Ini digunakan untuk membandingkan objek saat ini dengan objek yang ditentukan.
Public Boolean Equals (Object Obj)Ini digunakan untuk membandingkan objek saat ini dengan objek yang ditentukan.

Pembanding.compare ()

Untuk memberdayakan artikel yang diminta, kita harus membuat kelas yang mengaktualisasikan antarmuka pembanding. Pada titik itu, kita harus menggantikan strategi perbandingannya (t o1, t o2).

Itu terlihat pada dua pertikaian untuk permintaan. Itu mengembalikan angka negatif, nol, atau bilangan bulat positif sebagai Perselisihan utama tidak setara dengan atau lebih penting dari yang kedua.

Praktisi juga harus menjamin bahwa koneksi transitif: ((bandingkan (x, y)> 0) &&

(Bandingkan (y, z)> 0)) menyarankan Bandingkan (x, z)> 0.

Lihat contoh kode berikut.

// Student.java

import java.util.*;

class Student {

    int rollno;
    String name, address;
  
    public Student(int rollno, String name, String address) {
      this.rollno = rollno;
      this.name = name;
      this.address = address;
    }
    
    // Getters and Setters
    @Override
    public String toString() {
        return this.rollno + " " + this.name + " " + this.address;
    }
}

class Sortbyroll implements Comparator {
    // Used for sorting in ascending order of
    // roll number
    public int compare(Student a, Student b) {
        return a.rollno - b.rollno;
    }
}

class Sortbyname implements Comparator {
    // Used for sorting in ascending order of
    // roll name
    public int compare(Student a, Student b) {
        return a.name.compareTo(b.name);
    }
}

class Main {
    public static void main(String[] args) {
        ArrayList al = new ArrayList();
        al.add(new Student(18, "KB", "london"));
        al.add(new Student(19, "SM", "nyc"));
        al.add(new Student(21, "KL", "jaipur"));

        System.out.println("Unsorted");
        for (int i = 0; i < al.size(); i++)
            System.out.println(al.get(i));

        Collections.sort(al, new Sortbyroll());

        System.out.println("\nSorted by rollno");
        for (int i = 0; i < al.size(); i++)
            System.out.println(al.get(i));

        Collections.sort(al, new Sortbyname());

        System.out.println("\nSorted by name");
        for (int i = 0; i < al.size(); i++)
            System.out.println(al.get(i));
    }
} 

Lihat outputnya.

Java

Collections.sort () dan arrays.sort ()

  1. Menggunakan Collections.sort (daftar, pembanding) Metode Urutkan a daftar objek dalam rangka diberlakukan oleh contoh pembanding yang disediakan.
  2. Menggunakan Arrays.sort (array, pembanding) Metode Urutkan Himpunan objek dalam urutan yang dikenakan oleh contoh pembanding yang disediakan.

Itu untuk tutorial ini.

Artikel ini berasal dari website Winpoin, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Leave a Reply

Your email address will not be published. Required fields are marked *