|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2002
Città: ATZARA
Messaggi: 2204
|
[JAVA] come cancellare un elemento da un array..
ciao,
sono tornato. dovrei implementare un metodo che elimina un elemento da un'array.. in maniera efficente.. posto il metodo che ho scritto io ma che non funziona bene.. manda in crash il programma.. public void cancellaelemento(String daric) {int j=0,i,x=0; while(j<vettore_m.length&&x==0) { if(daric.compareTo(vettore_m[j].nome)==0) {x=1; tempv=new magazzino[dim-1]; int s=0; int l=0; while(l<j) tempv[s++]=vettore_m[l++]; l++; while(l<vettore_m.length) tempv[s++]=vettore_m[l++]; vettore_m=tempv; } } } aiuto.. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Il tipo di cancellazione che vuoi fare (con l'istanziazione di un nuovo array contenente n-1 elementi) e' molto pesante e non esiste imho una maniera efficiente per farlo.
Se il tuo fine no e' un esercizio che ti obbliga a fare in questa maniera prevedi una cancellazione "logica" dell'elemento, mettendo l'iesimo elemento a null e tenendo aggiornati gli opportuni contatori per quanto riguarda la dimensione dell'array, ecc.ecc, |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2002
Città: ATZARA
Messaggi: 2204
|
non è un'esercizio è solo la prima idea che mi è venuta in mente..
proverò a seguire il tuo consiglio.. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
|
Tieni conto che gli ARRAY sono strutture dati da utilizzare quando la dimensione dei dati è "costante" o comunque riconducibile a tale caso.
Se hai dei dati che possono variare notevolmente in dimensione, ci sono altre strutture dati più adatte, per esempio le liste concatenate. Questo per dirti che, come ha sottolineato KINGV, la cancellazione di un elemento dell'array, o la fai in modo logico (tieni traccia della quantità dei dati validi nell'array, che rimane però di dimensioni costanti) o non ha proprio senso farla.
__________________
---> Lombardp CSS Certified Expert (Master Level) at Experts-Exchange Proud user of LITHIUM forum : CPU technology Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2002
Città: Provincia de Venessia
Messaggi: 1078
|
oppure crei un nuovo array temporaneo senza l'elemento da cancellare e sovrascrivi l'array di partenza con quello temp
![]()
__________________
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:58.