Intro arrays

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

}

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos