IComparator Antarmuka
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Fungsi perbandingan, yang memberlakukan pemesanan total pada beberapa kumpulan objek.
[Android.Runtime.Register("java/util/Comparator", "", "Java.Util.IComparatorInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public interface IComparator : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/Comparator", "", "Java.Util.IComparatorInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
type IComparator = interface
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Turunan
- Atribut
- Penerapan
Keterangan
Fungsi perbandingan, yang memberlakukan pemesanan total pada beberapa kumpulan objek. Komparat dapat diteruskan ke metode pengurutan (seperti Collections#sort(List,Comparator) Collections.sort atau Arrays#sort(Object[],Comparator) Arrays.sort) untuk memungkinkan kontrol yang tepat atas urutan pengurutan. Komparat juga dapat digunakan untuk mengontrol urutan struktur data tertentu (seperti kumpulan yang diurutkan SortedSet atau peta yang diurutkan SortedMap), atau untuk menyediakan pengurutan untuk kumpulan objek yang tidak memiliki urutan alami yang Sebanding.
Pengurutan yang diberlakukan oleh komparator c pada sekumpulan elemen S dikatakan konsisten dengan sama dengan jika dan hanya jika c.compare(e1, e2)==0 memiliki nilai boolean yang sama seperti e1.equals(e2) untuk setiap e1 dan e2 di S.
Perhatian harus dilakukan saat menggunakan komparator yang mampu memaksakan pengurutan yang tidak konsisten dengan sama dengan urutan set yang diurutkan (atau peta yang diurutkan). Misalkan set yang diurutkan (atau peta yang diurutkan) dengan komparator c eksplisit digunakan dengan elemen (atau kunci) yang digambar dari satu set S. Jika pengurutan yang diberlakukan oleh c pada S tidak konsisten dengan yang sama, set yang diurutkan (atau peta yang diurutkan) akan berperilaku "aneh." Khususnya set yang diurutkan (atau peta yang diurutkan) akan melanggar kontrak umum untuk ditetapkan (atau peta), yang didefinisikan dalam hal equals.
Misalnya, satu menambahkan dua elemen a dan b singgahannya (a.equals(b) && c.compare(a, b) != 0) ke kosong TreeSet dengan komparator c. Operasi kedua add akan mengembalikan true (dan ukuran kumpulan pohon akan meningkat) karena a dan b tidak setara dari perspektif kumpulan pohon, meskipun ini bertentangan dengan spesifikasi Set#add Set.add metode.
Catatan: Ini umumnya merupakan ide yang baik bagi komparat untuk juga mengimplementasikan java.io.Serializable, karena dapat digunakan sebagai metode pemesanan dalam struktur data yang dapat diserialisasikan (seperti TreeSet, TreeMap). Agar struktur data berhasil diserialisasikan, komparator (jika disediakan) harus menerapkan Serializable.
Untuk sisipan matematis, hubungan yang menentukan urutan yang diberlakukan yang dikenakan komparator c tertentu pada sekumpulan objek S tertentu adalah:
{(x, y) such that c.compare(x, y) <= 0}.
Kuota untuk total pesanan ini adalah:
{(x, y) such that c.compare(x, y) == 0}.
Ini mengikuti segera dari kontrak untuk compare bahwa kuota adalah hubungan kesetaraan pada S, dan bahwa pemesanan yang diberlakukan adalah urutan total pada S. Ketika kita mengatakan bahwa pengurutan yang diberlakukan oleh c pada S konsisten dengan sama, kita berarti bahwa kuota untuk pengurutan adalah hubungan kesetaraan yang ditentukan oleh metode objek Object#equals(Object) equals(Object) :
{(x, y) such that x.equals(y)}.
Dengan kata lain, ketika pengurutan yang diberlakukan konsisten dengan sama, kelas kesetaraan yang ditentukan oleh hubungan kesetaraan equals metode dan kelas kesetaraan yang ditentukan oleh kuota compare metode sama.
Tidak seperti Comparable, komparator dapat secara opsional mengizinkan perbandingan argumen null, sambil mempertahankan persyaratan untuk hubungan yang setara.
Antarmuka ini adalah anggota Java Collections Framework.
Ditambahkan dalam 1.2.
Dokumentasi Java untuk java.util.Comparator.
Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.
Properti
| Handle |
Mendapatkan nilai JNI dari objek Android yang mendasar. (Diperoleh dari IJavaObject) |
| JniIdentityHashCode |
Mengembalikan nilai |
| JniManagedPeerState |
Status serekan terkelola. (Diperoleh dari IJavaPeerable) |
| JniPeerMembers |
Akses anggota dan dukungan pemanggilan. (Diperoleh dari IJavaPeerable) |
| PeerReference |
Mengembalikan instans objek Java yang dibungkus JniObjectReference . (Diperoleh dari IJavaPeerable) |
Metode
| Compare(Object, Object) |
Membandingkan dua argumennya untuk urutan. |
| Comparing(IFunction) |
Menerima fungsi yang mengekstrak |
| Comparing(IFunction, IComparator) |
Menerima fungsi yang mengekstrak kunci pengurutan dari jenis |
| ComparingDouble(IToDoubleFunction) |
Menerima fungsi yang mengekstrak |
| ComparingInt(IToIntFunction) |
Menerima fungsi yang mengekstrak |
| ComparingLong(IToLongFunction) |
Menerima fungsi yang mengekstrak |
| Disposed() |
Dipanggil ketika instans telah dibuang. (Diperoleh dari IJavaPeerable) |
| DisposeUnlessReferenced() |
Jika tidak ada referensi yang luar biasa untuk instans ini, maka panggilan |
| Equals(Object) |
Menunjukkan apakah beberapa objek lain adalah " sama dengan & perbanding ini. |
| Finalized() |
Dipanggil ketika instans telah diselesaikan. (Diperoleh dari IJavaPeerable) |
| NaturalOrder() |
Mengembalikan komparator yang membandingkan |
| NullsFirst(IComparator) |
Mengembalikan komparator ramah null yang dianggap |
| NullsLast(IComparator) |
Mengembalikan komparator ramah null yang dianggap |
| Reversed() |
Mengembalikan komparator yang memberlakukan pengurutan terbalik dari komparator ini. |
| ReverseOrder() |
Mengembalikan komparator yang memaksakan kebalikan dari pengurutan<</em> alami em>. |
| SetJniIdentityHashCode(Int32) |
Atur nilai yang dikembalikan oleh |
| SetJniManagedPeerState(JniManagedPeerStates) |
Fungsi perbandingan, yang memberlakukan pemesanan total pada beberapa kumpulan objek. (Diperoleh dari IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
Atur nilai yang dikembalikan oleh |
| ThenComparing(IComparator) |
Mengembalikan komparator urutan leksikografis dengan komparator lain. |
| ThenComparing(IFunction) |
Mengembalikan komparator urutan leksikografis dengan fungsi yang mengekstrak kunci pengurutan |
| ThenComparing(IFunction, IComparator) |
Mengembalikan komparator urutan leksikografis dengan fungsi yang mengekstrak kunci untuk dibandingkan dengan yang diberikan |
| ThenComparingDouble(IToDoubleFunction) |
Mengembalikan komparator urutan leksikografis dengan fungsi yang mengekstrak kunci pengurutan |
| ThenComparingInt(IToIntFunction) |
Mengembalikan komparator urutan leksikografis dengan fungsi yang mengekstrak kunci pengurutan |
| ThenComparingLong(IToLongFunction) |
Mengembalikan komparator urutan leksikografis dengan fungsi yang mengekstrak kunci pengurutan |
| UnregisterFromRuntime() |
Batalkan pendaftaran instans ini sehingga runtime tidak akan mengembalikannya dari pemanggilan di masa mendatang Java.Interop.JniRuntime+JniValueManager.PeekValue . (Diperoleh dari IJavaPeerable) |
Metode Ekstensi
| JavaCast<TResult>(IJavaObject) |
Melakukan konversi jenis yang diperiksa runtime Bahasa Umum Android. |
| JavaCast<TResult>(IJavaObject) |
Fungsi perbandingan, yang memberlakukan pemesanan total pada beberapa kumpulan objek. |
| GetJniTypeName(IJavaPeerable) |
Fungsi perbandingan, yang memberlakukan pemesanan total pada beberapa kumpulan objek. |