Apa itu Antarmuka Komparator di Jawa dengan Contoh?

Apa Itu Antarmuka Komparator Di Jawa Dengan Contoh



Di Java, antarmuka Comparator digunakan untuk mendefinisikan fungsi perbandingan yang dapat digunakan untuk mengurutkan kumpulan objek. Ini memungkinkan pengurutan objek berdasarkan kriteria khusus daripada perbandingan default berdasarkan urutan alami. Ini memiliki berbagai aplikasi untuk menyesuaikan fungsi sesuai dengan kebutuhan. Artikel ini akan menjelaskan antarmuka Comparator beserta banyak contoh di Java.

Apa itu Antarmuka Komparator di Jawa dengan Contoh?

Antarmuka Comparator berisi metode compare() dan equals() . Metode pertama digunakan untuk menghitung dua objek dengan mengembalikan nilai integer. Metode lain digunakan untuk menghitung dua objek pembanding untuk kesetaraan.

Berikut adalah beberapa contoh cara menggunakan antarmuka Comparator di Java:







Contoh 1: Mengurutkan Daftar berdasarkan Panjangnya

Dalam contoh ini, daftar string dianggap dan mengurutkannya berdasarkan panjangnya, bukan urutan abjad:



impor java.util.ArrayList ;

impor java.util.Koleksi ;

impor java.util.Comparator ;

impor java.util.List ;

publik kelas Utama {

publik statis ruang kosong utama ( Rangkaian [ ] argumen ) {

Daftar < Rangkaian > daftar = baru ArrayList <> ( ) ;

daftar. menambahkan ( 'Yohanes' ) ;

daftar. menambahkan ( 'Bob' ) ;

daftar. menambahkan ( 'Alice' ) ;

Koleksi . menyortir ( daftar ) ;

Sistem . keluar . println ( daftar ) ;

Koleksi . menyortir ( daftar, baru StringLengthComparator ( ) ) ;

Sistem . keluar . println ( daftar ) ;

}

} // Sebuah kelas didefinisikan

kelas StringLengthComparator alat Pembanding < Rangkaian > {

publik int membandingkan ( Rangkaian s1, Rangkaian s2 ) {

kembali Bilangan bulat . membandingkan ( s1. panjang ( ) , s2. panjang ( ) ) ;

}

}

Deskripsi kode di atas diberikan di bawah ini:



  • Pertama, buat kelas Comparator khusus yang disebut StringLengthComparator yang mengimplementasikan antarmuka Comparator.
  • Itu menimpa metode bandingkan () untuk membandingkan panjang dua string.
  • Pada akhirnya, berikan instance ke metode the.sort() untuk mengurutkan daftar menggunakan pembanding khusus kami.

Keluaran





Keluaran pertama adalah hasil pengurutan daftar menggunakan urutan alami, sedangkan keluaran kedua adalah hasil pengurutan daftar menggunakan pembanding kustom kami berdasarkan panjang setiap string.



Contoh 2: Menyortir Objek Berdasarkan Bidang Tertentu

Contoh lain dilakukan untuk mengurutkan objek berdasarkan bidang tertentu. Antarmuka Komparator digunakan untuk mencapai ini:

impor java.util.ArrayList ;

impor java.util.Koleksi ;

impor java.util.Comparator ;

impor java.util.List ;

publik kelas Utama {

publik statis ruang kosong utama ( Rangkaian [ ] argumen ) {

Daftar < Orang > orang = baru ArrayList <> ( ) ; // Tetapkan nama, umur, dan gaji

orang. menambahkan ( baru Orang ( 'Alice' , 25 , 50000 ) ) ;

orang. menambahkan ( baru Orang ( 'Bob' , 30 , 75000 ) ) ;

orang. menambahkan ( baru Orang ( 'Charlie' , dua puluh , 40000 ) ) ;

Pembanding < Orang > salaryComparator = baru Pembanding < Orang > ( ) {

// Urutkan orang berdasarkan gaji

publik int membandingkan ( Orang p1, Orang p2 ) {

kembali Bilangan bulat . membandingkan ( p2. getGaji ( ) , p1. getGaji ( ) ) ;

}

} ;

Koleksi . menyortir ( orang, komparator gaji ) ; kembali mengurutkan nilai

// Cetak daftar orang yang diurutkan

untuk ( Orang orang : orang ) {

Sistem . keluar . println ( orang ) ;

}

}

}

kelas Orang { // Tentukan nama, umur, dan gaji

pribadi Rangkaian nama ; // ruang lingkup di dalam kelas
pribadi int usia ;
pribadi int gaji ;

publik Orang ( Rangkaian nama, int usia, int gaji ) {
ini . nama = nama ;
ini . usia = usia ;
ini . gaji = gaji ;
}
publik Rangkaian getName ( ) {
kembali nama ;
}
publik int getAge ( ) {
kembali usia ;
}
publik int getGaji ( ) {
kembali gaji ;
}
publik Rangkaian keString ( ) {
kembali nama + ' (usia ' + usia + ', gaji $' + gaji + ')' ;
}
}

Deskripsi kode diberikan di bawah ini:

  • Sebuah kelas bernama “ Orang ” dengan tiga bidang: “ nama ”, “ usia ', Dan ' gaji ' dianggap.
  • Setelah itu, urutkan kumpulan objek Orang berdasarkan gajinya dalam urutan menurun.

Keluaran

Output menunjukkan bahwa gaji telah diurutkan menurut urutan menurun.

Kesimpulan

Di Java, antarmuka Comparator adalah alat canggih yang memungkinkan pengguna mengurutkan objek berdasarkan kriteria khusus. Ini menimpa metode bandingkan (), pengguna dapat menentukan fungsi perbandingan mereka sendiri dan menggunakannya untuk mengurutkan koleksi objek dalam berbagai cara. Artikel ini telah menjelaskan antarmuka Comparator beserta contoh-contoh praktis di Java.