Bienvenidos sean a este post, hoy nos centraremos en las variables llamadas Arrays, tambien pueden ser llamadas Arreglos, la particularidad de estas es que nos brinda la posibilidad de crear una lista de datos del mismo tipo, veamos como crear nuestros arrays:

tipodeDato[] nombreArray; // P.E: int[] intArray;

En este ejemplo vemos la mejor practica pero tambien se puede declarar asi:

tipodato nombreArray[]; P.E: int intArray[];

Esta es una practica permitida pero no la mas recomendada, se mantiene como practicidad para los programadores de C/C++, otra forma de crearlo es la siguiente:

nombreRefArray = new tipodeDato[ tamaño del Array ];

Veamos como deberiamos declararlo:

miLista = new double[ 25 ];

Aca crearemos un Array de tipo de referencia y lo crearemos de tipo double con un tamaño de 25 elementos para almacenar, otra forma de declararlo puede ser de la siguiente forma:

tipodeDato[] nombreRefArray = new tipodeDato[ Tamaño del array ];

En cualquiera de los casos los Arrays al ser creados su primer elemento es el cero, en programacion en general siempre comienzan de cero, y para recuperar esa informacion se debera representarlo de la siguiente manera:

nombreArray[ posicion del elemento]; // P.E: miLista[0];

Dos de los metodos mas usuales para recuperar nuestros elementos es por medio del bucle for y for avanzado (for enhanced) pero veamos un ejemplo para entenderlo mejor:

 public class TestArray 
{
         public static void main(String args[])
         {

         double[] miLista = {1.9, 2.9, 3.4, 3.5};
         System.out.println("Elementos mostrador por for: ");

         for(int i =0; i < miLista.length; i++)
	 {
                 System.out.println(miLista[i]);
         }
         System.out.println("Elementos mostrador por for avanzado: ");

         for(double elemento: miLista)
	 {
                 System.out.println(elemento);
         }
         double total = 0;

         for(int i = 0; i < miLista.length; i++)
	 {
                 total +=miLista[i];
         }
         System.out.println("El total es: " + total);
         double max = miLista[0];

         for(int i = 0; i < miLista.length; i++)
	 {
                  if (miLista[i] > max)
		  {
                         max = miLista[i];
                  }
         }

         System.out.println("El valor maximo es: " + max);
         }
}

En este ejemplo creamos un Array de cuatro elementos llamado miLista, donde primero recuperaremos cada valor por medio de un bucle for, en este bucle crearemos un entero llamado i con el valor inicial de cero, luego crearemos el condicional que sera el limitador el cual tendra un margen establecido por tamaño del array, definido por el metodo length(), y nuestro siguiente paso sera incrementar i por cada vuelta que realice, este es el mismo patron para todos los bucles restantes (salvo el que viene), lo unico diferente seran los bloques de los mismos, en el primer bucle for imprimiremos cada valor en pantalla en base al orden definido por medio de nuestra variable i del bucle, por cada pasada nos mostrara el elemento de esa posicion, en el segundo bucle for, al ser uno de tipo avanzado primero definimos una variable llamada elemento, debe ser del mismo tipo que el array, luego le pasaremos el array este se encargara de informar cuantas vueltas tiene que dar y en cada vuelta que valor pasar a elemento, luego solamente lo pasamos en pantalla, como pueden ver este metodo es mucho mejor para mostrar en pantalla que el anterior pero el anterior es mucho mas practico a la hora de intercambiar informacion entre variables por lo menos nos resultara mas informativo y sabremos cual fue a cual lado pero como siempre queda a criterio del programador y su comodidad. Para el siguiente bucle creamos una variable de tipo double llamada total y en el bloque de este a total le sumaremos el valor de cada elemento del array miLista, y una vez terminado el bucle lo sacaremos en pantalla y en el ultimo bloque averiguaremos cual es el valor maximo de nuestro array, para ello crearemos una nueva variable llamada max del tipo double, luego en el bloque compararemos cada elemento del array con max y si este es mayor lo reemplazara en max, una vez terminado el bucle lo mostramos en pantalla, si compilamos nuestro programa y lo probamos obtendremos el siguiente resultado:

tinchicus@dbn001vrt:~/java/program$ java TestArray
Elementos mostrador por for:
1.9
2.9
3.4
3.5
Elementos mostrador por for avanzado:
1.9
2.9
3.4
3.5
El total es: 11.7
El valor maximo es: 3.5
tinchicus@dbn001vrt:~/java/program$

Asi como pasamos datos de tipo primitivo a nuestros metodos, los arrays tambien pueden pasarse, para entenderlo mejor veamos el siguiente ejemplo:

public class Arreglos 
{
         public static void printArray(int[] array)
         {
         	for(int i = 0; i < array.length; i++)
	 	{
         	       System.out.print(array[i] + " ");
         	}
         	System.out.print("\n");
         }

         public static void main (String args[])
         {
	         printArray(new int[]{ 1,2,3,4,5,6,7,8,9,0 });
         } 
} 

En este ejemplo crearemos un metodo llamado printArray() el cual se encargara de recibir una X cantidad de datos y luego mostrartlos en pantalla, en este caso observen como creamos un atributo de tipo array para que pueda almacenar dicha informacion y luego por medio de un bucle for mostramos cada uno de los elementos del array creado, luego tenemos el cuerpo de main() donde llamaremos a nuestro metodo y vean como enviamos la informacion, primero por medio de un new se crea un entero (int) y luego entre las llaves ({}) enviamos la informacion a almacenar. Si compilamos nuestro programa obtendremos una salida como esta:

tinchicus@dbn001vrt:~/java/program$ java Arreglos
1 2 3 4 5 6 7 8 9 0
tinchicus@dbn001vrt:~/java/program$

Pasemos a hablar del ultimo tema, las clases Arrays. Al igual que como vimos en los numeros y caracteres tambien existe una clase para manipular Arrays, estos contienen varios metodos para permitirnos trabajar sobre la informacin almacenada en los mismos, veamos algunos de ellos:

  • public static int binarySearch(Objeto[] a, Objeto llave),

    Busca el Array de Objeto especificado por el valor especificado usando el algoritmo d busqueda binaria, para efectuar esta llamada el array debe ser ordenado.

  • public static boolean equals(long[] a, long[] a2).

    Devuelve verdadero si los dos arrays de tipo long informados son iguales, se considera iguales cuando tienen la misma cantidad de elementos y todos los dos pares de elementos.

  • public static void fill(int[] a, int val),

    Asgina el valor informado (val) a cada posicion del array informado, haciendo el efecto de llenado.

  • public static void sort(Objeto[] a),

    Este metodo se encargara de ordenar de forma ascendente segun el orden natural de los componentes de la misma.

En resumen, hemos visto que es y como trabaja un Array, tambien conocido como Arreglo, sus capacidades, como definirlos, como utilizarlos y cuales son los metodos disponibles para nuestra clase Arrays, espero les haya sido util sigueme en Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios