Wpis z mikrobloga

#java #programowanie #pytanie

Mam głupie pytanie: czym się różni (ewentualnie w jakich przypadkach stosuje się) nadpisywanie metody equals od implementacji compareTo z comparable? Tzn. bardziej mi chodzi o zastosowanie. Chodzi tutaj tylko o wykorzystanie tego, że compareTo zwraca "więcej informacji" (bo jest minus, zero albo plus, a nie tylko true/false)? I gdzie w tym wszystkim są comparatory? Jeżeli powiedzmy mam listę obiektów i chcę je sortować na kilka różnych sposobów to powinienem do tego stworzyć kilka comparatorów? Jest ogólnie jakaś głębsza filozofia w tym wszystkim, jakieś ważne niuanse?
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 5
@baalder363
W dużym skrócie, jeśli chcesz klasy używać jako klucz w mapie, albo wrzucać do setu, to nadpisujesz equals i hashCode.
Jeśli chcesz sortować i sortowanie jest "oczywiste", to compareTo.
Jedno nie wyklucza drugiego.
Poczytaj Effective Java. Tam masz wszystko w tym temacie wyjaśnione.
  • Odpowiedz