vuoi
o PayPal
tutte le volte che vuoi
RIDIMENSIONARE UN ARRAY
Non è possibile ridimensionare un array, però si può costruire un metodo che usa un array come valore di ritorno. Questo metodo restituisce un array contenente i dati dell'array e con lunghezza newLength.
public static int[] resize(int[] oldArray, int newLength) {
int[] newArray = new int[newLength];
int n = newLength;
for (int i = 0; i < n; i++)
newArray[i] = oldArray[i];
return newArray;
}
COPIARE UN ARRAY
Invece di usare un ciclo, è possibile invocare il metodo statico arraycopy
della classe System
(nel pacchetto java.lang
) -> System.arraycopy(from, fromStart, to, toStart, counter);
double[] values = new double[10];
...
double[] otherValues = new double[values.length];
System.arraycopy(values, 0, otherValues, 0, values.length);
È anche possibile usare il metodo clone
(Attenzione: il metodo clone
restituisce un riferimento di tipo Object
).
<p><strong>ELIMINARE UN ELEMENTO DI UN ARRAY</strong></p>
<ul>
<li>se l'ordine tra gli elementi dell'array non è importante è sufficiente:
<ul>
<li>copiare l'ultimo elemento dell'array nella posizione dell'elemento da eliminare</li>
<li>ridimensionare l'array (oppure usare la tecnica degli array riempiti soltanto in parte)</li>
</ul>
</li>
<li>se l'ordine tra gli elementi dell'array deve essere mantenuto bisogna:
<ul>
<li>Spostare tutti gli elementi dell'array successivi all'elemento da rimuovere nella posizione con indice immediatamente inferiore</li>
<li>ridimensionare l'array (oppure usare la tecnica degli array riempiti soltanto in parte)</li>
</ul>
</li>
</ul>
<p><strong>INSERIRE UN ELEMENTO IN UN ARRAY</strong></p>
<ul>
<li>Per inserire l'elemento nella posizione voluta bisogna "fargli spazio". È necessario:
<ul>
<li>Ingrandire l'array</li>
<li>Spostare tutti gli elementi dell'array successivi alla posizione di inserimento nella posizione con indice</li>
</ul>
</li>
</ul>
immediatamente superiore (a partire dall'ultimo)