Cancellazione di un elemento per indice
Solitamente il numero degli elementi di un array è determinato in fase di allocazione della memoria e non è possibile modificare il numero degli elementi di un array durante l'esecuzione del codice.
Non possiamo rimuovere un elemento da un array in questa situazione e dobbiamo approssimare la situazione eliminando in qualche modo l'elemento che non interessa più.Una possibilità consiste nel ricopiare l'elemento che segue quello che si intende cancellare sull'elemento che si intende cancellare e ripetere l'operazione per tutti gli elementi che seguono nell'array. In fondo all'array rimarrà una copia dell'ultimo elemento dell'array iniziale.
In java:
import java.io.*;
class cancellazioneElementoIndice{
public static void main(String args[]){
String[] p = {"luca", "lidia", "laura", "lucio", "lila", "liam", "lewis"} ;
int i; int numRip; int cont;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader t = new BufferedReader(isr);
try {
System.out.println("Inserisci l'indice dell'elemento da cancellare");
i = Integer.parseInt(t.readLine());
numRip = maxIndice - i;
/* se ho 7 elementi
il massimo indice è 6
e devo eliminare l'elemento di indice 4
devo spostare 5 in 4 e 6 in 5 quindi ho due spostamenti cioè
6 - 4 maxIndice - i spostamenti
*/
cont = 0;
while (cont < numRip ){
// ecco il nostro spostamento
array[i] = array [i +1];
i ++;
cont ++;
}
}
catch (Exception e){
// facciamo qualcosa in caso di errori
}
}
}