package com.trifulcas.arrays; public class IntroArrays { public static void main(String[] args) { int[] tablaEnteros; // Un array de enteros sin incializar int[] otraTabla= new int[5]; // Un array de enteros de tamaño 5 int[] ultimaTabla= {1,2,3,4,5}; // Un array lo creo y lo inicializo System.out.println(ultimaTabla[1]); // 2 ultimaTabla[3]=99; // {1,2,3,99,5} for(int i=0;i<ultimaTabla.length;i++) { System.out.println(ultimaTabla[i]); } for(int i=0;i<otraTabla.length;i++) { System.out.println(otraTabla[i]); } /* da error for(int i=0;i<tablaEnteros.length;i++) { System.out.println(tablaEnteros[i]); } */ tablaEnteros=ultimaTabla; // Asignando un array a otro array // Se copia la referencia, no el array // Si modificamos cualquiera de los dos arrays // Se modifica el otro tablaEnteros[0]=666; for(int i=0;i<ultimaTabla.length;i++) { System.out.println(ultimaTabla[i]); } // Nos imprime el mismo valor porque están apuntando al mismo sitio System.out.println(tablaEnteros); System.out.println(ultimaTabla); int[] numeros= {1,2,3,4,5,6,7,8,9,10}; for(int i=0;i<numeros.length;i++) { System.out.println(numeros[i]); } System.out.println(sumaTabla(numeros)); // Al llamar a la función sumaTabla me ha modificado numeros fuera // de la función for(int i=0;i<numeros.length;i++) { System.out.println(numeros[i]); } } // UN array se pasa por referencia, no por valor. NO SE COPIA static int sumaTabla(int[] elementos) { // como modifico la tabla que paso, se modifica fuera for(int i=1;i<elementos.length;i++) { elementos[0]+=elementos[i]; } return elementos[0]; } }