2016-03-22 12 views
-2

, Farkındayım orijinal verileri Karşılaştırılabilir değiştirmek gelmez orijinal veriler, diğeri ise yok mu?neden Karşılaştırılabilir karşılaştırıcı birden sıralama dizisi sağlar oysa tek sıralama diziyi sağlar Ama bir arayüz değiştirir anlamak alamıyorum Koleksiyon çerçevede

+1

Söyleyebilmeniz ne sağlar Karşılaştırılabilir orijinal veriler değiştirilir? Bazı belirli sıralama yöntemini mi kullanıyorsunuz? – Eran

+0

Üzgünüm, ama lütfen açıklama yapabilir misiniz? –

+1

bunların hiçbiri hiçbir şeyi değiştirmez (en azından yapmamalılar), sadece hangi nesnenin "büyük" olduğunu ve hangisinin "küçük" olduğunu söyleyin. Bir "Karşılaştırıcı" veya "compareTo()" bir nesneyi değiştirirse, bu hata –

cevap

2

Comparable hiçbir şey yapmaz, bu bir arabirimdir. Nesnenizi 'compareTo' yöntemini uygulamak için zorlar. Bu, nesnenin başka bir nesneyle karşılaştırılmasına izin verir. https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html

Comparator hiçbir şey yapmaz, başka bir arabirimdir. Nesnenizi 'karşılaştır' yöntemini uygulamak için zorlar. Bu, nesnenin diğer iki nesneyi karşılaştırmasına izin verir. Farkı not edin: karşılaştırılacak ve karşılaştırılacak. https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html

Bu bağlantı, Nesne Sıralama arayüzlerini çok, çok iyi açıklar. Örneklerle ve her şeyle. https://docs.oracle.com/javase/tutorial/collections/interfaces/order.html