Rumah >Java >javaTutorial >Antara Muka Pembanding

Antara Muka Pembanding

PHPz
PHPzasal
2024-07-16 16:47:12533semak imbas

Pembanding boleh digunakan untuk membandingkan objek kelas yang tidak melaksanakan Setanding. Anda telah mempelajari cara membandingkan elemen menggunakan antara muka Setanding (bahagian). Beberapa kelas dalam API Java, seperti String, Tarikh, Kalendar, BigInteger, BigDecimal dan semua kelas pembalut angka untuk jenis primitif, laksanakan antara muka Setanding. Antara muka Comparable mentakrifkan kaedah compareTo, yang digunakan untuk membandingkan dua elemen kelas yang sama yang melaksanakan antara muka Comparable.

Bagaimana jika kelas elemen tidak melaksanakan antara muka Setanding? Bolehkah unsur-unsur ini dibandingkan? Anda boleh mentakrifkan pembanding untuk membandingkan elemen kelas yang berbeza. Untuk berbuat demikian, tentukan kelas yang melaksanakan antara muka java.util.Comparator dan mengatasi kaedah bandingkannya.

banding int awam(elemen T1, elemen T2)

Mengembalikan nilai negatif jika elemen1 kurang daripada elemen2, nilai positif jika elemen1 lebih besar daripada elemen2 dan sifar jika mereka sama.

Kelas GeometricObject telah diperkenalkan dalam bahagian, Kelas Abstrak. Kelas GeometricObject tidak melaksanakan antara muka Setanding. Untuk membandingkan objek kelas GeometricObject, anda boleh mentakrifkan kelas pembanding, seperti yang ditunjukkan dalam kod di bawah.

Image description

Barisan 4 melaksanakan Pembanding. Baris 5 mengatasi kaedah bandingkan untuk membandingkan dua objek geometri. Kelas juga melaksanakan Boleh Bersiri. Secara umumnya adalah idea yang baik untuk pembanding untuk melaksanakan Boleh Bersiri, kerana ia boleh digunakan sebagai kaedah pesanan dalam struktur data boleh bersiri. Agar struktur data berjaya bersiri, pembanding (jika disediakan) mesti melaksanakan Boleh Bersiri.

Kod di bawah memberikan kaedah yang mengembalikan objek yang lebih besar antara dua objek geometri. Objek dibandingkan menggunakan GeometricObjectComparator.

Image description

Atur cara mencipta objek Segi empat tepat dan Bulatan dalam baris 7–8 (kelas Segi empat tepat dan Bulatan ditakrifkan dalam bahagian, Kelas Abstrak). Kesemuanya ialah subkelas GeometricObject. Atur cara menggunakan kaedah maks untuk mendapatkan objek geometri dengan kawasan yang lebih besar (garisan 10).

GeometricObjectComparator dicipta dan dihantar kepada kaedah maks (baris 10) dan pembanding ini digunakan dalam kaedah maks untuk membandingkan objek geometri dalam baris 16.

Comparable digunakan untuk membandingkan objek kelas yang melaksanakan Comparable. Komparator boleh digunakan untuk membandingkan objek kelas yang tidak melaksanakan Setanding.

Membandingkan elemen menggunakan antara muka Sebanding dirujuk sebagai membandingkan menggunakan tertib semula jadi dan membandingkan elemen menggunakan antara muka Comparator dirujuk sebagai membandingkan menggunakan pembanding.

Atas ialah kandungan terperinci Antara Muka Pembanding. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Kajian Kes: Menyalin FailArtikel seterusnya:Kajian Kes: Menyalin Fail