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.