20
Array en Java Ingeniería de Sistemas e Informática Asignatura : Lenguaje de Programación I Semestre : 2012-I Turno : Noche Elaborado por Ing° Oscar Alberto Barnett Contreras

Array en Java

Embed Size (px)

DESCRIPTION

arreglos en Java

Citation preview

Page 1: Array en Java

Array en Java

Ingeniería de Sistemas e Informática

Asignatura : Lenguaje de Programación ISemestre : 2012-ITurno : Noche Elaborado por

Ing° Oscar Alberto Barnett Contreras

Page 2: Array en Java

Objetivos Declarar un array de tipos de datos

primitivos. Inicializar un array mediante lazos y

en la declaración. Utilizar lazos para realizar

operaciones con un array: Ordenar un array con el método

burbuja. Buscar en un array con el método

lineal.Ing. Oscar ALberto Barnett

Contreras

Page 3: Array en Java

Declaración de un array

Array: objeto que contiene una colección de elementos con el mismo tipo de dato.

Declaración de un array:

Tipo[] identificador;

O Tipo identificador[];

Un array se construye con el operador new

int lluvia[];lluvia = new int[12];

O

int lluvia[] = new int[12];

Se crea un array de 12 elementos con valor 0.

lluvia[0] 0

lluvia[1] 0

lluvia[2] 0

lluvia[3] 0

lluvia[4] 0

lluvia[5] 0

lluvia[6] 0

lluvia[7] 0

lluvia[8] 0

lluvia[9] 0

lluvia[10] 0

lluvia[11] 0

Ing. Oscar ALberto Barnett Contreras

Page 4: Array en Java

Declaración de un array

double lluvia[];lluvia = new double[12];

O

double lluvia[] = new double[12];

Se crea un array de 12 elementos con valor 0.0

lluvia[0] 0.0

lluvia[1] 0.0

lluvia[2] 0.0

lluvia[3] 0.0

lluvia[4] 0.0

lluvia[5] 0.0

lluvia[6] 0.0

lluvia[7] 0.0

lluvia[8] 0.0

lluvia[9] 0.0

lluvia[10] 0.0

lluvia[11] 0.0

Ing. Oscar ALberto Barnett Contreras

Page 5: Array en Java

Declaración de un array

gota lluvia[];lluvia = new gota[12];

O

gota lluvia[] = new gota[12];

Se crea un array de 12 elementos con valor null

lluvia[0] null

lluvia[1] null

lluvia[2] null

lluvia[3] null

lluvia[4] null

lluvia[5] null

lluvia[6] null

lluvia[7] null

lluvia[8] null

lluvia[9] null

lluvia[10] null

lluvia[11] null

Ing. Oscar ALberto Barnett Contreras

Page 6: Array en Java

Acceso a los elementos

Los elementos de un array se acceden mediante un índice.

lluvia[2] o lluvia[i+1]

El índice de la primera posición de un array es siempre 0.

Ing. Oscar ALberto Barnett Contreras

Page 7: Array en Java

Iniciación de array en la declaración

La forma de iniciar un array al declararlo es como sigue:

String[] nombreMes = {“enero”,”febrero”,”marzo”,

”abril”,”mayo”,”junio”,

”julio”,”agosto”,”septiembre”,

”octubre”,”noviembre”,”diciembre”};

Ing. Oscar ALberto Barnett Contreras

Page 8: Array en Java

Iniciación de array con lazo

double lluvia[] = new double[12];double mediaAnual, suma = 0.0;

for( int i = 0; i < 12; i++)

{ System.out.print(“LLUVIA PARA EL MES “ + (i+1)); lluvia[i] = sc.nextDouble(); suma += lluvia[i]; }

mediaAnual = suma/12;System.out.println(“Media anual = ” + mediaAnual);

Leer 12 valores de lluvia mensual y calcular el promedio

Ing. Oscar ALberto Barnett Contreras

Page 9: Array en Java

Procesos en un array

double diferencia;

for( int i = 0; i < 12; i++)

{ System.out.println( lluvia[i] ); diferencia = Math.abs(lluvia[i]- mediaAnual); System.out.println( diferencia );}

Calcula la diferencia entre la lluvia del mes y la media anual

Ing. Oscar ALberto Barnett Contreras

Page 10: Array en Java

Tamaño de un array

El tamaño de un array se obtiene por medio del miembro length del objeto array.

Los lazos de los ejemplos anteriores pueden escribirse como:

for( int i = 0; i < lluvia.length; i++)

{ …;…;

}

Ing. Oscar ALberto Barnett Contreras

Page 11: Array en Java

Lluvia para meses pares e impares

double lluvia[] = new double[12];double sumaMesImpar = 0.0, mediaMesImpar,double sumaMesPar = 0.0, mediaMesPar;for(int i=0; i < lluvia.length; i++){ System.out.print("LLUVIA PARA EL MES DE “ + nombreMes[i]); lluvia[i]=(double) sc.nextFloat();}for(int i = 0; i < lluvia.length; i+=2)

sumaMesImpar += lluvia[i];

mediaMesImpar = sumaMesImpar/6;for(int i = 1; i < lluvia.length; i+=2)

sumaMesPar += lluvia[i];

mediaMesPar = sumaMesPar/6;Ing. Oscar ALberto Barnett

Contreras

Page 12: Array en Java

Método de ordenación

Compara el primer elemento con el segundo, luego el segundo, con el tercero, etc., si es necesario se intercambian los elementos. Al final de esta “pasada” se tendrá el primer elemento ordenado al inicio.

La pasada se repite a partir del segundo elemento con todos los demás y luego a partir del tercer , etc., hasta el penúltimo.

for(i = 0; i<n-1; i++) for(j = i+1; j<n; j++) if(d[i]>d[j])

{ intercambiar d[i] y d[j];

}Ing. Oscar ALberto Barnett

Contreras

Page 13: Array en Java

Ordenación y despliegue

//Despliega lista desordenada System.out.println("Desordenados\n"); for(i = 0; i<n; i++) System.out.println(d[i]);

System.out.println("\nOrdenados\n"); //ordena el vector for(i = 0; i<n-1; i++) for(j = i; j<n; j++) if(d[i].compareToIgnoreCase(d[j])>0){

String temp = d[i]; d[i] = d[j]; d[j] = temp; }

//Despliega lista ordenada for(i = 0; i<n; i++) System.out.println(d[i]); }}

Compara cadenas 0 – iguales>0 – la primera mayor<0 – la primera menor

Intercambia cadenasIng. Oscar ALberto Barnett

Contreras

Page 14: Array en Java

Método de Búsqueda Lineal

El método consiste en comparar la clave de búsqueda (el valor a encontrar) con cada elemento del arreglo, si la clave es encontrada se cambia el estado de una variable bandera ( flag) obteniendo la posición donde existe la clave.

clave = sc.nextInt(); bandera = 0;

for(i = 0; i<array.lenght; i++) if(clave == array[i])

{ bandera = 1; posición = i;

}

Ing. Oscar ALberto Barnett Contreras

Page 15: Array en Java

Array Multidimensional

Ing. Oscar ALberto Barnett Contreras

Un array multidimensional es un array de elementos array. En un array multidimensional de k-dimensiones; sus elementos se pueden acceder empleando la siguiente sintaxis:

array [ i1 ] [ i2 ]…[ ik ]

donde n1, n2, ….., nk

Page 16: Array en Java

Declaración de array MD

Ing. Oscar ALberto Barnett Contreras

De la misma forma que el array simple, el MD se puede declarar con alguna de las siguientes formas:

Usando el operador new. Usando inicialización al declarar.

Page 17: Array en Java

Declaración de array MD

Ing. Oscar ALberto Barnett Contreras

Usando operador new

new Tipo [ n1] [n2]…[nk]

Tamaño de cada dimensión es n1, n2, …,nk, respectivamente.

Todos los elementos en el array son inicializados con los valores default según el tipo de sus elementos.

Usando inicializador

{I1, I2, ...., Ik}

donde cada I1, I2, ...., Ik es un

inicializador dimensional.

Page 18: Array en Java

Declaración de array MD

Ing. Oscar ALberto Barnett Contreras

Ejemplo usando el operador new:

double mat1[ ][ ] = new double[4][5];

Crea un array bidimensional de 4 filas x 5 columnas. Todos los 20 elementos son iniciados con 0.0

Ejemplo usando un inicializador k-dimensional, para un array de 2 dimensiones:

int mat2[ ] [ ] = {{1, 2, 3}, {4, 5, 6}};

Se crea un array de dos dimensiones 2 x 3. Los elementos son iniciados:

mat2[0][0]=1 mat2[1][0]= 4 mat2[0][1]=2 mat2[1][1]= 5 mat2[0][2]=3 mat2[1][2]= 6

Page 19: Array en Java

Procesos en un array MD

Ing. Oscar ALberto Barnett Contreras

Para procesar todos los elementos de un array bidimensional, se necesita un for embebido dentro de otro for, por ejemplo:

Si int[ ][ ] A = new int[3][4];

El siguiente doble lazo, almacena 0 en cada posición del array bidimensional A :

for (int fila = 0; fila < 3; fila++) { for (int columna = 0; columna < 4; columna++)

{ A [fila][columna] = 0;

}}

Page 20: Array en Java

Ing. Oscar ALberto Barnett Contreras

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

{ double mat[ ] [ ]= { {2.3, 5.1, 9.9}, {8.3, 4.5, 7.7},

{ 5.2, 6.1, 2.8}; };int n = mat.length;int m = mat[0].length;double maxmin = 0.0; for (int j = 0; j < m; j++) { double min = mat[j][0];

for (int i = 1; i < n ; i ++) { min = Math.min(min, mat[i][j]); } if (j==0) { maxmin = min; }else { maxmin = Math.max(maxmin, min); }

}System.out.println(“El valor max-min es” + maxmin);

}}

Al ejecutar, se obtiene:

El valor max-min es 4.5