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

}

}

}