A quanto ho capito quando scrivo "int[] numeriFortunati = numeriPrimi" (dove numeriPrimi è un vettore) dovrei copiare il contenuto di numeriPrimi dentro NumeriFortunati eppure facendo partire il programma qui giù sembra che si comporti come in c cioè che fa puntare l'indirizzo di numeriFortunati allo stesso indirizzo di numeriPrimi....
codice:public class CopiaArray{ public static void main(String[] args){ int[] numeriPrimi = {2, 3, 5, 7, 11, 13}; int[] numeriFortunati = numeriPrimi; //Stessa locazione di memoria come in c numeriFortunati[2] = 12; for(int i = 0; i < numeriFortunati.length; i++) System.out.print(numeriFortunati[i] + " "); numeriFortunati = new int[6]; //così non modifico anche numeriPrimi perchè do un nuovo indirizzo di memoria for(int i = 0; i < 6; i++) numeriFortunati[i] = 1000 + i + 1; System.out.println(); System.arraycopy(numeriPrimi, 2, numeriFortunati, 2, 4); //da quale elemento effettuare la copia, da quale indice deve partire a copiare //in quale array copiare, da quale indice iniziare a sovrascrivere, quanti elementi sovrascrivere //Attenzione a non uscire fuori dall'array for(int i = 0; i < numeriFortunati.length; i++) System.out.print(numeriFortunati[i]+ " "); } }
Avete chiarimenti da darmi??? grazie

Rispondi quotando