Sebanding vs Komparator: Perbedaan Antara Sebanding dan Komparator

Diterbitkan: 2020-12-30

Daftar isi

Sebanding dan Pembanding: Gambaran Umum

Sebanding dan komparator keduanya antarmuka dalam bahasa pemrograman Java untuk menentukan perilaku di mana kelas akan diimplementasikan. Sementara Comparable digunakan pada objek yang dipesan secara alami, antarmuka Comparator mengimplementasikan pengurutan dengan mempertimbangkan atribut objek. Selanjutnya, penyortiran Comparator memperhitungkan objek dari dua kelas yang berbeda dan Comparable membandingkan objek menggunakan referensi "ini".

Sekarang, setelah kita menetapkan prinsip dasar di mana kedua antarmuka bekerja, mari kita lihat perbedaan di antara keduanya.

Perbedaan Antara Sebanding dan Pembanding

Metode Penyortiran

Sebanding

Ini menggunakan fungsi compareTo() untuk menyortir. Ini adalah satu-satunya metode yang ada di antarmuka penyortiran Sebanding.

compareTo(Object O) mengambil argumen sebagai objek dan membandingkannya dengan objek lain yang bertipe sama. Jika suatu objek adalah string, Anda hanya dapat membandingkannya dengan objek lain dengan tipe yang sama. Sama halnya dengan objek int dan seterusnya. compareTo() mengembalikan nilai integer negatif, positif, atau nol berdasarkan hasil pengurutan.

pembanding

Ada dua metode untuk mengurutkan elemen di Comparator: compare() dan equals().

bandingkan(Objek O1, Objek O2) memperhitungkan dua argumen sebagai input dan memberikan output yang diinginkan. Ini mengembalikan bilangan bulat untuk menunjukkan bagaimana argumen pertama datang dengan yang kedua.

  • Jika O1 kurang dari O2, ia mengembalikan bilangan bulat negatif.
  • Jika O1 lebih besar dari O2, maka akan menghasilkan bilangan bulat positif.
  • Jika O1 sama dengan O2, ia mengembalikan 0.

equals(Object) memperhitungkan objek sebagai input dan membandingkannya dengan komparator. Ini mengembalikan True jika Objek sama dengan Pembanding. Ini juga memastikan bahwa urutannya tidak berubah.

Paket Digunakan

Sebanding

Itu ada di paket java.lang Java.

pembanding

Itu ada di paket Java.util Java.

Pemesanan dan Kelas

Sebanding

  • Ini memperhitungkan objek yang mengikuti urutan alami yaitu memiliki kecenderungan untuk menyortir diri mereka sendiri. Misalnya, urutan abjad atau urutan numerik dalam hal nama, harga, gaji, nomor gulungan, usia, dll.
  • Penting juga bahwa kedua objek termasuk dalam kelas yang sama.
  • Antarmuka yang sebanding membandingkan referensi "ini" dengan objek yang ditentukan.
  • Penyortiran menggunakan Sebanding mempengaruhi kelas yang sebenarnya.

pembanding

  • Antarmuka ini digunakan terutama untuk mengurutkan atribut objek tertentu. Mereka tidak perlu memiliki tatanan alam; itu dapat disesuaikan.
  • Logika penyortiran diperlukan untuk berada di kelas yang terpisah untuk membandingkan atribut objek dari dua kelas yang dipertimbangkan.
  • Kelas yang sebenarnya tetap tidak terpengaruh.

Urutan dan Koleksi

Sebanding

  • Ini hanya mendukung urutan penyortiran tunggal. Ini menyiratkan bahwa Anda hanya dapat mempertimbangkan satu elemen atau atribut koleksi seperti nomor gulungan atau usia atau peringkat.
  • Untuk mengurutkan kumpulan objek, larik, atau daftar, Anda dapat menggunakan Koleksi. sort(Daftar) atau Array. urutkan (Daftar). Ini akan membawa benda-benda dalam tatanan alam mereka .

pembanding

  • Ini mendukung beberapa urutan penyortiran. Ini menyiratkan bahwa Anda dapat mempertimbangkan beberapa elemen atau atribut koleksi seperti nomor gulungan, usia, dan peringkat.
  • Anda dapat menggunakan collection.sort(list, comparator) untuk mengurutkan koleksi.

Berikut adalah ringkasan dari semua perbedaan antara Sebanding dan Komparator

Sebanding pembanding
Kemasan
Java.lang Java.util
Metode Penyortiran
dibandingkan dengan() membandingkan()
Memerintah
Pemesanan Alami Pemesanan Kustom
Jenis Objek
Objek yang dibandingkan harus dari jenis yang sama Objek dari kelas yang berbeda dipertimbangkan
Mempengaruhi Kelas
Kelas akan dimodifikasi Tidak mempengaruhi kelas
Urutan pengurutan
Urutan Penyortiran Tunggal Beberapa Urutan Penyortiran

Mendaftar di Kursus pengembangan perangkat lunak dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Hal Yang Perlu Diingat Saat Menggunakan Comparable Dan Comparator Di Java

  • Antarmuka yang sebanding adalah yang dipilih jika Anda menjual untuk melakukan perbandingan standar untuk kelas tertentu.
  • Komparator memungkinkan penggunaan lambda.
  • Anda dapat menggunakan metode compareTo() untuk mengimplementasikan Comparator dan Comparable.
  • Antarmuka komparator direkomendasikan jika Anda mencari fleksibilitas dalam menyortir

Kesimpulan

Dalam sebagian besar skenario kehidupan nyata, ketika kami mengurutkan, kami biasanya memiliki berbagai parameter dalam pikiran. Juga, karena menggunakan hasil yang sebanding dalam penyortiran default dan tidak dapat diubah secara dinamis, ini kurang praktis daripada Comparator yang memungkinkan Anda untuk menyesuaikan dan memilih dari berbagai metode penyortiran yang sesuai dengan kebutuhan Anda. Untuk alasan ini saja, Comparator menemukan aplikasi yang lebih praktis daripada Comparable.

Baca: Beberapa proyek java yang menarik untuk dilihat

Jika Anda tertarik untuk mempelajari lebih lanjut tentang Java, pengembangan tumpukan penuh, lihat Program PG Eksekutif upGrad & IIIT-B dalam Pengembangan Perangkat Lunak Tumpukan Penuh yang dirancang untuk para profesional yang bekerja dan menawarkan 500+ jam pelatihan ketat, 9+ proyek, dan penugasan, status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.

Apa yang dimaksud dengan antarmuka dalam bahasa pemrograman?

Apakah belajar Java itu mudah?

Java memperkenalkan paradigma pemrograman Berorientasi Objek, memungkinkan pengembang Java yang paling tidak berpengalaman pun untuk berpikir dan membuat program seperti pengembang berpengalaman. Java berasal dari bahasa pemrograman C dan C++ yang juga banyak digunakan saat ini. Meskipun Java memiliki beberapa kesamaan dengan C dan C++ dalam hal fungsionalitas, Java telah berkembang menjadi bahasa yang lebih ramah pengguna. Karena pemrograman berorientasi objek memudahkan untuk memelihara dan mengubah kode yang ada, bahkan pembuat kode pemula dapat mulai mengerjakan proyek perusahaan. Pengembang baru cenderung tidak menemui kesalahan runtime yang tidak terduga karena Java diverifikasi untuk kesalahan sebelum dieksekusi. Java memaksa pemrogram untuk menentukan semua elemen kode dengan benar, mengurangi kemungkinan kesalahan saat aplikasi berkembang.

Mengapa penyortiran diperlukan di Jawa?

Sorting mengacu pada seperangkat teknik untuk mengatur ulang tempat elemen dalam array sedemikian rupa sehingga semuanya dalam urutan menaik atau menurun. Algoritma pengurutan yang layak juga harus memastikan bahwa elemen dengan nilai yang sama tetap berada dalam array yang diurutkan dalam urutan yang sama. Penyortiran diperlukan untuk memahami struktur data dan algoritma secara mendalam. Java sebagai bahasa pemrograman sangat serbaguna dan dapat digunakan untuk mengimplementasikan sejumlah algoritma pengurutan. Mayoritas algoritma ini cukup serbaguna dan dapat diimplementasikan baik secara rekursif maupun iteratif.