jekkost ha scritto:
sto rivedendo, per caso conosci/conoscete a chiunque altro si voglia aggiungere un metodo per eliminare un elemento posto in una posizione x, da un array?io penso a System.arraycopy, dovrei farlo copiare dalla posiz 0, a z-1, e da z+1 alla fine dell array iniziale.
l'array iniziale è nome, quello finale l'ho creato e chiamato tmpN, ma come si usa ora arraycopy?
appena completo posto il codice
L'array copy sarebbe la soluzione piu' elegante ma sinceramente ti consiglierei di seguire la soluzione proposta da Jam3s82, che praticamente e' quello che andresti a fare con l'arraycopy.
http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/System.html#arraycopy(java.lang.Object, int, java.lang.Object, int, int)
questo e' il link diretto alla sezione array copy ma credo che in parte lo conosci gia.
supponiamo che src sia l'array da copiare
dest sia l'array finale con voce eliminata
e 'x' la posizione da elminare
allora devi copiare prima da src incominciando dalla posizione 0 nel dest ricopiando iniziando da 0, per un numero di elementi equivalenti a x, dal momento che x e' l'elemento da eliminare tutto quello che sta prima (x-1) e' la lunghezza del primo pezzo.
Mentre per il pezzo di array dopo la posizione da eliminare devi fare conti differenti.
si deve copiare da src incominciando da (x+1) perche mi interessa da dopo l'elemento x, con dest partendo da x perche qui non ho piu l'elemento vuoto, con lunghezza pari a (src.length-(x+1)) trovo la lunghezza del pezzo di array dopo l'elemento da eliminare.
Per eseguire questi tipo di lavori(giochi) ti consiglio di prendere sempre carta e penna e simulare prima manualmente registrando i passaggi che fai, ed eventualmente fare i passaggi a fotogrammi in modo da poter ricontrollare e facilitare la ricerca delgi errori nei passaggi. Io ho fatto cosi ora. E spero che ti funzioni.