Bütün nesneler karşılaştırılamaz, ancak bütün nesneler eşitlik açısından kontrol edilebilir. Başka bir şey yoksa, biri bellekte aynı yerde iki nesnenin var olup olmadığını görebilir (referans eşitliği).
compareTo()
İki Thread
nesnede bunun anlamı nedir ? Bir iş parçacığı diğerinden "daha büyük" nasıl? İki ArrayList<T>
s nasıl karşılaştırılır ?
Object
Sözleşme için geçerli tüm Java sınıfları. Bir sınıf bile kendi sınıfının diğer örnekleri ile karşılaştırılamazsa Object
, arayüzün bir parçası olmasını gerektiremez.
Joshua Bloch, bir sınıfın neden uygulamak istediğini açıklarken "doğal düzen" anahtar sözcüklerini kullanıyor Comparable
. Yukarıdaki örneklerde bahsettiğim gibi, her sınıfın doğal bir düzeni yoktur, bu nedenle her sınıfın uygulamaması Comparable
veya yönteme Object
sahip olmaması gerekir compareTo
.
... compareTo
yöntem, içinde bildirilmedi Object
. ... O kadar karakterinde benzer Object
bireyin equals
basit eşitlik karşılaştırmalar ek olarak sipariş karşılaştırmaları izin haricinde, yöntemin ve geneldir. Comparable
Bir sınıf uygulayarak , örneklerinin doğal bir sıraya sahip olduğunu belirtir .
Etkili Java, İkinci Baskı : Joshua Bloch. Madde 12, Sayfa 62. Elips, diğer bölümlere ve kod örneklerine referansları kaldırır.
Eğer durumlarda do olmayan bir bir sipariş empoze etmek istiyorum Comparable
doğal bir sipariş yok sınıfın, her zaman bir sağlayabilmektedir Comparator
bu bir çeşit yardıma örneği.