MaIn forum

Forum matematyczno-informatyczne


#1 2007-11-29 20:41:55

saf

Administrator

3457910
Skąd: Zakręt
Zarejestrowany: 2007-11-29
Posty: 56
Punktów :   
WWW

rehash

Przypominam państwu projektantom i implementatorom, że zmieniając z zewnątrz elementy niektórych kolekcji Smalltalka musimy wywoływać metodę Collection>>rehash, aby zapewnić prawidłowe wyszukiwanie elementów. Jeśli się nie mylę, dotyczy to co najmniej kolekcji Set, a przez to i Dictionary.

Projekt się chyba obędzie bez wzmianki o tym, ale warto o tym pamiętać, żeby nie przypomnieć sobie nagle kiedy już kolekcje nie będą się zachowywać jak powinny w czasie implementacji

Offline

 

#2 2007-11-29 21:57:37

Collect

Gość

Re: rehash

No ale wiele problemów da się rozwiązać prosto i zgrabnie, czarując kolekcjowymi metodami. Np. jak się zmienia kolekcję przez collect to żadnych rehashów nie trzeba już robić no nie?

 

#3 2007-11-29 23:18:41

saf

Administrator

3457910
Skąd: Zakręt
Zarejestrowany: 2007-11-29
Posty: 56
Punktów :   
WWW

Re: rehash

Przy collect: nie trzeba robić rehasha, bo collect: tworzy nową kolekcję, a nie zmienia starą.

Rehash jest potrzebny na przykład jak masz na przykład instancję klasy Pole, która ma atrybut zawartość, na którym jest zbiór obiektów gry. Niech obiekty się psują z czasem jak specyfikacja przykazała - nagle zmienia się (z zewnątrz) jakość przedmiotu w tej kolekcji, a przez to zmienia się hash tego przedmiotu, no i kolekcja oparta na hashtables już nie zobaczy naszej deski albo czego tam.

("Collect" to fajny nick, ale ja i tak dojdę kto jest kim, a potem zablokuję możliwość pisania bez rejestracji )

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
GotLink.plSarbinowo pola namiotowe