Napisałem kod here, który poprawnie rozwiązał problem z plakatem. OP chciał usunąć duplikaty i wnieść pewne specjalne przedmioty na szczyt listy. Użyłem klasy TreeSet
ze specjalną klasą Comparable
, która owijała Locale
, z którą pracowali, aby osiągnąć to, co chcieli.Równa się i porównywalna z zestawami
Potem dostał się do myślenia ... jak ty ... że ja eliminowanie duplikatów wracając 0
od sposobu compareTo
, nie powracając true
od implementacji equals
jako jeden musiałby zrobić, aby poprawnie wskazywać duplikat w Set
(od definition z Set
).
Nie mam zastrzeżeń do stosowania tej techniki, ale czy używam tego, co może być uznane za nieudokumentowaną funkcję? Czy mogę bezpiecznie założyć, że robienie tego rodzaju rzeczy będzie dalej działało?
Jak Pan Nurkiewicz zwraca uwagę, jest to określone zachowanie, więc jest to bezpieczne. Zgadzam się, ale to zaskakujące! –