PDA

View Full Version : [JAVA] Problema con Stack


bizzu
06-06-2004, 11:36
Ho un problema con la classe Stack...
In un programma che ho scritto, all'interno di un algoritmo uso uno Stack all'interno del quale inserisco oggetti di tipo Point (mi servono per un backtracking).
L'oggetto Point che pusho nello Stack è sempre lo stesso, ovviamente con le coordinate cambiate di volta in volta. L'algoritmo nn funzionava... allora ho fatto un debug e ho scoperto che, quando cambio le coordinate del Point, cambiano anche quelle dei Point all'interno dello stack, col risultato che dopo un po' di cicli ho uno stack pieno di Point tutti uguali!
Che succede? Ho sbagliato qualcosa io oppure Java effettivamente inserisce all'interno dello Stack solo il riferimento all'oggetto??
Thanx :)

theClimber
06-06-2004, 11:46
Viene memorizzata la reference.

Devi creare + oggetti x avere valori diversi.

Ciao

bizzu
06-06-2004, 14:59
Ho capito. Quindi quando inserisco il Point nello Stack, supponendo che si chiami cellaCorrente, scrivo:
stack.push(new Point(cellaCorrente.x, cellaCorrente.y));
Devo fare una cosa del genere anche quando eseguo il pop(), oppure mi basta solo scrivere
cellaCorrente = (Point)stack.pop(); ?

theClimber
07-06-2004, 08:51
Corretto.

Va bene anche il pop(). Occhio solo che il pop ti restituisce l'oggetto Point corrispondente allo stato dello stack. Se devi rimetterlo in una cella, lo devi poi fare tu esplicitamente.

Ciao

bizzu
07-06-2004, 09:00
Ok, grazie 1000 :D