Daha özel olarak, yalnızca eşitlikle karşılaştırılabilecek nesneleri karşılaştırmak için bir arabirim istiyorum [ör. karmaşık sayılar] ama üzerinde toplam sipariş yok. O varIEqualityComparer arabirimi Java'da
boolean Equals(T object1, T object2);
ve karma kodudur fonksiyonu [sadece hayır/bir boolean evet döndüren unutmayın] olmalıdır. Böylece nesneleri "eşit" nesneleri toplamak için kovalar kullanarak dağıttığımda, 2 "eşit" nesne iki farklı kovada bitmez.
int getHashCode(T object);
Java var mı? Aradım ve bulamadım.
ben bütün "eşit" nesneler üzerinde çalışabilir, böylece işi azaltmak aynı etmek "eşit" nesneleri dağıtmak için azaltın Hadoop Harita kullanmak çalışıyorum. Sadece nesnelerin eşit olup olmadığına ve toplam siparişe ihtiyaç duymayacağına dikkat ediyorum. Fakat eğer iki nesne eşitse, aynı karma kodu olmalıdır. Aksi takdirde, iki farklı azaltılmış işte sona ereceklerdir. Ben eşittir ve nesnenin karma kodu hakkında bilmek unutmayınız. Ama bir nesnenin sadece bir kısmına bağlı olduğunu söyleyen bir harici karşılaştırıcı istiyorum. Yani nesnenin eşitlik kavramı benimkinden farklıdır.
C# benzeşimi hakkında hiçbir fikrim yok, ancak 'Object' sınıfını kontrol ettiniz mi? 'Equals()' ve 'hashCode()' yöntemlerine sahiptir. Her sınıfta temel olarak kalıtsal (ve değiştirilemez) bir şeydir. http://download.oracle.com/javase/6/docs/api/java/lang/Object.html Veya belki de 'Karşılaştırıcı'ya ihtiyacınız var mı? http://download.oracle.com/javase/6/docs/api/java/util/Comparator.html – BalusC
Hayır - Harici bir karşılaştırıcı istiyorum - Nesnelerin eşitliğinden farklı olarak "eşitlik" kavramına sahibim.Ben sadece nesnenin bir kısmını karşılaştırmak istediğimi, ancak nesnenin tüm alandaki eşitliğini uygulayacağını söyle. – Fakrudeen
standart java.util, benzer işlevleri desteklememektedir. – bestsss