2011-08-31 19 views
7

Java, ile karşılaştırması yapmanın çoklu/alternatif yöntemlerine izin vermek için, sınıfın dışındaki nesnelerin karşılaştırmasını sağlamak amacıyla Comparator<T>'a sahiptir.Java: Eşdeğerliği belirlemek için harici sınıf?

Ama sırasız karşılaştırmaları yapmanın tek standart yol bir sınıf içinde equals()geçersiz etmektir.

Bir sınıfa harici çoklu/alternatif sırasız karşılaştırmalar sağlamak istediğimde ne yapmalıyım? (Bariz bir kullanım durumu belli özelliklerine göre denklik sınıflara koleksiyonu bölünmesi edilir.)

son kullanım varsayarsak sadece denetler Comparator<T> uygulamak hiç sorun yok, (örn değil sıralama veya indeksleme için) sırasız denetimi içindir Eşitlik, iki nesne eşitse 0, ve iki nesne eşitsizken bir değer! orada olmalıydım gibi: (not. Bu çözüm üzerinde atlamayın tek nedeni, teknik olarak geçişlilik ve simetri karşılayan bir ilişki sağlayarak değil Comparator fesih olmamasıdır)

görünüyor Bir EqualsComparator<T> standart sınıf veya bir şey.

cevap

İlgili konular