Vous êtes sur la page 1sur 26

Arreglos

Arreglo
Un arreglo en Java es un grupo de
posiciones de memoria contiguas, todas las
cuales tienen el mismo nombre y el mismo
tipo.

Un arreglo es un agregado homogneo ya
que combina un conjunto de datos del
mismo tipo.

Declaracin de arreglos
Los arreglos ocupan espacio en memoria. En
java se usa el operador new para asignar
espacio de almacenamiento al nmero de
elementos requerido por cada arreglo.
Un arreglo empieza en 0, es decir, la primer
localidad del arreglo es la localidad 0.
Ejemplo
int a[ ] = new int a[6];
Declaracin de arreglos
Por tanto, si un arreglo tiene n
componentes, la ltima localidad est dada
por n-1.

0 n-1
n elementos
Arreglos
3 4 34 3
"Ana" "Casa" "Auto" "12" ""
3.4 5.6 0.0 2.8 -37
Arreglo de enteros
Arreglo de strings
Arreglo de doubles
Arreglos
Para referirnos a una posicin o elemento
en particular del arreglo, especificamos el
nombre del arreglo y el nmero de posicin
de ese elemento en el arreglo.
Ejemplo
a[i] = 0; , a[0] = 9; val= a[i];

donde i es el ndice que
representa la posicin dentro
del arreglo donde reside el
componente a accesar.
Identificacin y tamao de
un arreglo
Cada arreglo se reconoce por un identificador y cada
dato se almacena en una posicin indexada.


Posicin 0 1 2 3 4

Un arreglo de largo N , tiene posiciones indexadas
mediante enteros desde 0 hasta N-1

El mximo largo posible para un arreglo corresponde
al mayor valor permitido para un int

"Ana" "Casa" "Auto" "12" ""
Pasos para crear un Arreglo en
java
1. Definir una variable que identifique al arreglo,
indicando la naturaleza de los datos que se
almacenarn:
tipo[ ]variable
o alternativamente:
tipo variable[ ]
2. Instanciar el arreglo indicando el largo que
tendr, y asignarlo a la variable:
variable=new tipo[entero]


Creacin de un Arreglo


int[] edades;
edades=new int[8];
Define que la variable
Edades referenciar un
arreglo de enteros
Instancia un arreglo de
enteros de 8 posiciones
Asigna el arreglo
instanciadoa la
variable edades
Ejemplos de creacin de
arreglos
Arreglo de double de largo 4:
double nota[];
nota = new double[4];

Arreglo de String de largo 20:

int largo = 20;
String[] nombres;
nombres = new String[ largo ];

Forma abreviada para crear
arreglos
La definicin de variable, instanciacin
del arreglo y su asignacin a la variable
puede realizarse en una sola instruccin
tipo[ ] variable=new tipo[entero];
Ejemplo
double[] nota = new double[10];


Otra forma de instanciar
arreglos
Tambin es posible instanciar
arreglos escribindolos como literales
en el cdigo fuente
int[] nota ;
nota ={ 23, 14, 55,18 };


Instancia
un arreglo de
enteros de largo 4
Cmo recorrer un arreglo...
Los arreglos son recorridos de manera
secuencial.
Los ciclos for nos sirven para esto.
Observa el siguiente ejemplo donde el for
nos ayuda a elevar al cuadrado todos los
elementos del arreglo:




int[] arr = {6, 2, 8, 4, 3};
for(int i = 0; i < arr.length; i++) {
arr[i] *= arr[i];
}
Ejemplos:
Hacer un programa que pida las 10 nmeros y
los guarde en un arreglo.






Hacer un programa que imprima un vector de
nmeros
public void pedirNumeros(){
Scanner teclado = new Scanner(System.in);
int numero=0;
int [] vecNumeros = new int[9];
for(int i = 0; i<=9; i ++){
System.out.println(Digite un numero);
numero = teclado.nextInt();
vecNumeros [i]= numero;
}
}


Ejemplo:
Qu hace el siguiente programa?
public void metodo(){
int a, b = 0;
int[] c = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
for (a = 0; a < 10; ++a) {
if ((c[a] % 2) == 0) {
b += c[a];
}
}
System.out.println(b);
}
Error tpico en el manejo de
arreglos
Tratar de accesar una posicin inexistente del
arreglo, por ejemplo, la posicin 10 de un arreglo
de largo 10.
Cuando lo anterior ocurre, se genera en tiempo
de ejecucin una excepcin denominada:

ArrayIndexOutOfBoundsException
Ejercicios
Ejercicio 1
Elabore un mtodo que sume los primeros 25 nmeros
enteros guardados en un vector. Se desea imprimir la
lista de nmeros y al final la suma de los mismos.
Ejercicio 2
Hacer un mtodo para generar e imprimir un vector de
10 nmeros enteros y encontrar el mayor de ellos.
Desplegar el resultado.
Ejercicio 3
Dadas dos listas A y B de igual nmero de elementos, se
desea generar e imprimir una lista C conteniendo las
sumas: C[i] =A[i] + B[i]
Matrices o arreglos
multidimensionales
Una matriz es una estructura de datos,
o ms tcnicamente, un espacio de
memoria que permite almacenar una
coleccin de elementos, todos del
mismo tipo.
La diferencia con los arreglos est en
que, en las matrices, los elementos no
estn organizados linealmente sino que
su organizacin es bidimensional, es
decir, en filas y columnas.
Conviene imaginar una matriz como una
organizacin de celdas de memoria, o
casillas, en cada una de las cuales se
puede guardar un elemento de la
coleccin. Adems, es usual dibujarla
como lo ilustra la figura siguiente:

Matrices o arreglos
multidimensionales
Matrices
Esta figura representa un matriz de cuatro filas
(numeradas verticalmente de 0 a 3) y seis
columnas (numeradas horizontalmente de 0 a
5).
En cada una de las 24 celdas o casillas se
puede guardar un dato.
La dimensin o tamao de una matriz es el
nmero filas por el nmero de columnas. Debe
ser claro entonces que la figura anterior es la
grfica de una matriz de dimensin 4x6.
La numeracin de las filas y las columnas
determina que cada una de las casillas de
una matriz tiene asociados dos nmeros que
la identifican de manera nica. A estos
nmeros se les llama ndice de fila e ndice
de columna, respectivamente. En el java las
filas y las columnas se numeran desde 0.
Matrices
Creacin de Matrices
Java permite implementar matrices de la
siguiente forma:
Tipo[ ] [ ]variable=new tipo[entero1][entero2]
Por ejemplo
int[ ][ ] utilidad = new int[10][15];

O mediante literales:
double numeros[][] = {{1,2,3}, {4,5,6}, {7,8,9}};

Cmo recorrer una matriz
Las matrices son recorridas mediante dos
ciclos for.
Observe el siguiente ejemplo

int ab[][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
System.out.print(ab[i][j]);
}
System.out.print("\n");
}
Cmo recorrer una matriz
Scanner teclado = new Scanner(System.in);
int numero = 0;
int ab[][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
System.out.println("Digite un numero");
numero = teclado.nextInt();
ab[i][j] = numero;
}
}

}
Qu hace el siguiente mtodo?
public boolean metodo() {
int[][] matrizA = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int[][] matrizB = {{1, 2, 3}, {4, 5, 6}, {7, 8, 0}};
int filasA, columnasA;
filasA = matrizA.length;
columnasA = matrizA[0].length;
for (int i = 0; i < filasA; i++) {
for (int j = 0; j < columnasA; j++) {
if (matrizA[i][j] != matrizB[i][j]) {
return false;
}
}
}
return true;
}
Ejercicios
Hacer un mtodo que pida datos para una
matriz 3X3 y que haga la suma de las columna
y las filas.
Hacer un mtodo que pida datos para dos
matrices 3X3. En una tercera matriz se debe
arrojar el resultado de la suma celda a celda de
las matrices digitadas por usuario. Se debe
mostrar la matriz resultado.
Hacer un mtodo que pida datos para una
matriz 4X4. Se debe calcular la transpuesta de
la matriz digitada por el usuario en otra matriz.
Se debe mostrar la matriz original y su
transpuesta

Vous aimerez peut-être aussi