|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Oct 2007
Messaggi: 13
|
[Java] Help su removeElementAt()
Ciao,
sto usando i vettori in un programma Java, a un certo punto nel codice utilizzo il metodo removeElementAt(0) per togliere l'ultimo oggetto che si è posizionato nel vettore...però in esecuzione viene lanciata l'eccezione outOfBoundException: 0 >= 0 Cioè?! non capisco, in teoria la coda non è vuota quindi non vedo perchè ci debbano essere problemi! Forse non devo passargli 0 come argomento? o forse meglio usare il semplice metodo remove? Rispondete vi pregooooooooo! Grazie! ![]() |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Bisognerebbe vedere meglio il tuo codice. Tra l'altro parli di "coda" e in tal caso ci sono altre classi più adatte per gestire una coda.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Diciamo che l'eccezione non si sforza granchè di essere comunicativa comunque se è quella che quoto allora ti dice che tenti di rimuovere l'elemento di indice zero di un insieme che ha zero elementi.
0 (l'indice da rimuovere) >= 0 (la dimensione dell'insieme) Forse il tuo codice ha un "bug logico", cioè una precondizione implicita che risulta eventualmente o costantemente falsa durante l'esecuzione. Puoi accertarti dell'intoppo con il metodo della nonna. Prima del removeElementAt stampa sulla console la dimensione del vettore seguita dall'indice che vuoi rimuovere: se noti che la dimensione è pari a o minore dell'indice allora il problema è proprio logico. Altrimenti ci vuole un esorcista perchè di solito le eccezioni non saltano fuori a caso ![]()
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#4 |
Junior Member
Iscritto dal: Oct 2007
Messaggi: 13
|
dunque se stampo la dimensione del vettore mi viene x esempio 17....mentre l'elemento in posizione 0 è dato da Thread[Thread 26,5, main]
che vuol dire l'ultimo pezzo? |
![]() |
![]() |
![]() |
#5 | |
Member
Iscritto dal: Sep 2001
Città: pisa
Messaggi: 70
|
Stai utilizzando un Vector come se fosse una coda.
Quote:
removeElementAt(0) rimuove l'elemento in posizione 0 che magari non esiste. magari ti può essere utile questo http://www.cli.di.unipi.it/~gadducci...eLSD/main.html e la relativa documentazione http://www.cli.di.unipi.it/~gadducci...doc/index.html |
|
![]() |
![]() |
![]() |
#6 |
Junior Member
Iscritto dal: Oct 2007
Messaggi: 13
|
infatti, quindi ho pensato che potrei usare removeLastElement()....può andare?
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Usa una lista
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:11.