Wpis z mikrobloga

@SuppressWarnings: nie lepiej te liczby wstawić do listy i jeśli pamiętam to lista ma metodę sprawdzającą czy dany element jest w niej, a jeśli nie to przeiterować.
Niż się bawić w jakieś zbiory
  • Odpowiedz
@Fensi: Ten kod to tylko uproszczony przykład, pokazujący patologiczne zachowanie metody Set.of. Łatwo sobie wyobrazić jak szybko coś takiego kopnęłoby nas w dupę w jakiejś większej aplikacji.
  • Odpowiedz
@MaFiGat: Set jest po to żeby reprezentować zbiór elementów bez duplikatów, a nie po to żeby zastawiać pułapki na programistów. Unikalność ma być gwarantowana na poziomie wewnętrznego stanu struktury danych, a nie na poziomie API.
  • Odpowiedz
@MaFiGat: Ale ja wiem jak to rozwiązać, problem w tym że nie widzę powodu żeby tak to wszystko komplikować. Oczekiwałbym że Set.of(...) będzie pozwalało w zwięźlejszy sposób osiągnąć to co da się zrobić za pomocą HashSetu i operacji .add(). Jeżeli taki był zamysł (a zakładam że tak było), no to się nie udało, bo działanie jednego i drugiego jest względem siebie niespójne (jedno pozwala wykonać dwukrotnie set.add() z tym
  • Odpowiedz
@MaFiGat: przeca to logiczne, wystarczy wiedziec ze == porownoje komorki (w sensie czy ten sam obiekt) a equals wartosci, do tego jakie liczby keszuje jvm defaultowo i gotowe :P
  • Odpowiedz
@MaFiGat: Ale przecież gdyby ten wyjątek nie był rzucany, a duplikaty by były po prostu ignorowane, to wyszłoby na to samo (tj. set byłby "od początku w porządku"). Jaki jest zatem sens istnienia tak nieintuicyjnej metody?
  • Odpowiedz