8.-Arreglos (for)

Proposito: Explicar en que consisten estos arreglos, como utilizarlos y en que métodos basarnos.

 Tiempo: 35 min.

 Recursos o medios: Java e Internet.

 

INTRODUCCIÓN

Los Arreglos en Java son agrupaciones de campos de memoria en los cuales podemos almacenar valores de forma “ordenada”, estos  valores almacenados pueden ser de tipo primitivo o deobjetos (clases), para manipular los datos(agregar, eliminar, buscar) se accede a ellos por medio de su indice, el cual va desde 0 (cero) hasta su valor -1 (n-1), para empezar a enteder lo que es un arreglo tenemos la siguiente imagen:

La anterior imagen es de un arreglo de 10 elementos, cabe aclarar que en los diferentes campos siempre va un valor del mismo tipo de valor (int, float, double, boolean, etc). Sabiendo de antemano las características que poseen los arreglos pasamos a la creación de estos. Para la creación de estos es de la siguiente manera:

1
2
3
4
5
tipo nombre_arreglo [] = new tipo[n];                                                                               
 
int numeros [] = new int [5];
 
double tales [] = new double {5.5, 3.6, 4.5};

En la linea 1 vemos la sintaxis usada para crear los arreglos, en la linea 3 vemos un arreglo creado de nombre numeros, y tipo int, este arreglo se crea con un espacio de 5 elementos, recordemos que sus indices van desde 0 hasta 4. En la linea 5 se crea un arreglo de nombre tales, de tipo double, pero no se crea con un numero fijo de elementos sino con los valores almacenados en sus espacios, automaticamente java reconoce que este arreglo  tiene 3 elementos. En los dos ejemplos suceden dos cosas diferentes en una misma linea, se declara el tipo y nombre del arreglo, seguidamente se instancia (crea) el elemento (ya sea con un tamaño o con sus valores); lo anterior lo digo ya que las lineas 3 y 5 se pudieron hacer de la siguiente manera:

1
2
3
4
5
int numeros [];                                                                                                   
numeros = new int [5];
 
double tales [];
tales = new double {5.5, 3.6, 4.5};

Como se pudo apreciar podemos crear e instanciar en una misma linea, o por el contrario podemos declarar el arreglo y luego podemos crearlo con el tamaño deseado ;) Al momento de instanciar los arreglos estos se crean con sus valores predeterminados de cada tipo, asi que se puede empezar a trabajar despues de haber sido creados. Un ejemplo sencillo se demuestra en las siguiente lineas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    public static void main(String[] args) {
 
        ArrayJ o = new ArrayJ();//creacion del objeto para invocar el metodo
 
        o.Ejem4();//invocacion del metodo      
        System.exit(0);//linea para asegurar la terminacion inmediata de la aplicacion
    }
 
    public void Ejem1(){
        int arr1 [] = new int[5];//arreglo de 5 elementos
        String ax="";//variable que acumula el mensaje
 
        for(int i=0; i<arr1.length; i++){//ciclo para el recorrido del elemento
            arr1[i]=i;//asignacion del elemento
            ax+="En el indice "+i+" se almaceno el valor: "+i+"\n";//cuando se asigna el valor se acumulan los datos en el mensaje
        }//fin ciclo
        JOptionPane.showMessageDialog(null, ax);//cuando finaliza el ciclo se muestra el mensaje.
    }
}

Ahora podemos apreciar que para la manipulación de estos se hace por medio de un ciclo, el ciclofor es el mas usado para recorrerlos, en la parte del condicional del ciclo vemos el uso del método length el cual lo usamos para saber el tamaño del arreglo. También se como se asignas los valores a los espacios disponibles, ahora modificare el ejemplo para recibir un valor, multiplicarlo por su posición y asignar este valor en el correspondiente indice:

1
2
3
4
5
6
7
8
9
10
11
12
 public void Ejem2(){
        int arr1 [] = new int[5], n;//arreglo de 5 elementos y variable que almacena el numero a multiplicar
        String ax="";//variable que acumula el mensaje
 
        for(int i=0; i<arr1.length; i++){//ciclo para el recorrido del elemento           
 
            n = Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese el numero a multiplicar en la posicion "+(i+1)+": ")); 
            arr1[i]=i*n;//asignacion del numero dado de la multiplicacion del anterior numero ingresado por el indice
            ax+="En el indice "+i+" se almaceno el valor: "+arr1[i]+"\n";//cuando se asigna el valor se acumulan los datos en el mensaje
        }//fin ciclo
        JOptionPane.showMessageDialog(null, ax);//cuando finaliza el ciclo se muestra el mensaje.
    }