Bagikan melalui


IComparator Antarmuka

Definisi

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) &lt;= 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 java.lang.System.identityHashCode() untuk instans yang dibungkus.

(Diperoleh dari IJavaPeerable)
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 java.lang.Comparable Comparable kunci pengurutan dari jenis T, dan mengembalikan Comparator<T> yang dibandingkan dengan kunci pengurutan tersebut.

Comparing(IFunction, IComparator)

Menerima fungsi yang mengekstrak kunci pengurutan dari jenis T, dan mengembalikan Comparator<T> yang dibandingkan dengan kunci pengurutan tersebut menggunakan yang ditentukan Comparator.

ComparingDouble(IToDoubleFunction)

Menerima fungsi yang mengekstrak double kunci pengurutan dari jenis T, dan mengembalikan Comparator<T> yang dibandingkan dengan kunci pengurutan tersebut.

ComparingInt(IToIntFunction)

Menerima fungsi yang mengekstrak int kunci pengurutan dari jenis T, dan mengembalikan Comparator<T> yang dibandingkan dengan kunci pengurutan tersebut.

ComparingLong(IToLongFunction)

Menerima fungsi yang mengekstrak long kunci pengurutan dari jenis T, dan mengembalikan Comparator<T> yang dibandingkan dengan kunci pengurutan tersebut.

Disposed()

Dipanggil ketika instans telah dibuang.

(Diperoleh dari IJavaPeerable)
DisposeUnlessReferenced()

Jika tidak ada referensi yang luar biasa untuk instans ini, maka panggilan Dispose(); jika tidak, tidak melakukan apa pun.

(Diperoleh dari IJavaPeerable)
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 Comparable objek dalam urutan alami.

NullsFirst(IComparator)

Mengembalikan komparator ramah null yang dianggap null kurang dari non-null.

NullsLast(IComparator)

Mengembalikan komparator ramah null yang dianggap null lebih besar dari non-null.

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 JniIdentityHashCode.

(Diperoleh dari IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Fungsi perbandingan, yang memberlakukan pemesanan total pada beberapa kumpulan objek.

(Diperoleh dari IJavaPeerable)
SetPeerReference(JniObjectReference)

Atur nilai yang dikembalikan oleh PeerReference.

(Diperoleh dari IJavaPeerable)
ThenComparing(IComparator)

Mengembalikan komparator urutan leksikografis dengan komparator lain.

ThenComparing(IFunction)

Mengembalikan komparator urutan leksikografis dengan fungsi yang mengekstrak kunci pengurutan Comparable .

ThenComparing(IFunction, IComparator)

Mengembalikan komparator urutan leksikografis dengan fungsi yang mengekstrak kunci untuk dibandingkan dengan yang diberikan Comparator.

ThenComparingDouble(IToDoubleFunction)

Mengembalikan komparator urutan leksikografis dengan fungsi yang mengekstrak kunci pengurutan double .

ThenComparingInt(IToIntFunction)

Mengembalikan komparator urutan leksikografis dengan fungsi yang mengekstrak kunci pengurutan int .

ThenComparingLong(IToLongFunction)

Mengembalikan komparator urutan leksikografis dengan fungsi yang mengekstrak kunci pengurutan long .

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.

Berlaku untuk