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 Threadnesnede 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 ?
ObjectSö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ı Comparableveya yönteme Objectsahip olmaması gerekir compareTo.
... compareToyöntem, içinde bildirilmedi Object. ... O kadar karakterinde benzer Objectbireyin equalsbasit eşitlik karşılaştırmalar ek olarak sipariş karşılaştırmaları izin haricinde, yöntemin ve geneldir. ComparableBir 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 Comparabledoğal bir sipariş yok sınıfın, her zaman bir sağlayabilmektedir Comparatorbu bir çeşit yardıma örneği.