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];
}
}