Sunteți pe pagina 1din 27
Arreglos
Arreglos

Arreglos

Arreglo

Arreglo Un arreglo posiciones de memoria contiguas, todas las cuales tienen el mismo nombre y el
Arreglo Un arreglo posiciones de memoria contiguas, todas las cuales tienen el mismo nombre y el

Un arreglo

posiciones de memoria contiguas, todas las cuales tienen el mismo nombre y el mismo

tipo.

de

en

Java

es

un

grupo

Un arreglo es un agregado homogéneo ya que combina un conjunto de datos del mismo tipo.

Declaración de arreglos

Declaración de arreglos  Los arreglos ocupan espacio en memoria. En java se usa el operador
Declaración de arreglos  Los arreglos ocupan espacio en memoria. En java se usa el operador

Los arreglos ocupan espacio en memoria. En

java se

usa

el

operador new para asignar

espacio de almacenamiento al número 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];

Declaración de arreglos

Declaración de arreglos  Por arreglo n componentes, la última localidad está dada por n-1 .
Declaración de arreglos  Por arreglo n componentes, la última localidad está dada por n-1 .

Por

arreglo

n

componentes, la última localidad está dada por n-1.

tanto,

si

un

tiene

n elementos

arreglos  Por arreglo n componentes, la última localidad está dada por n-1 . tanto, si
0 n-1
0
n-1

Arreglos

Arreglos Arreglo de enteros 3 4 34 3 Arreglo de strings "Ana" "Casa" "Auto"
Arreglos Arreglo de enteros 3 4 34 3 Arreglo de strings "Ana" "Casa" "Auto"

Arreglo de enteros

3

4

34

3

Arreglo de strings

"Ana"

"Casa"

"Auto"

"12"

""

Arreglo de doubles

3.4

5.6

0.0

2.8

-37

Arreglos

Arreglos  Para referirnos a una posición o elemento en particular del arreglo, especificamos el nombre
Arreglos  Para referirnos a una posición o elemento en particular del arreglo, especificamos el nombre

Para referirnos a una posición o elemento en particular del arreglo, especificamos el

nombre del arreglo y el número de posición

de ese elemento en el arreglo.

Ejemplo

a[i] = 0;

a[0] = 9; val= a[i];

donde i es el índice que representa la posición dentro del arreglo donde reside el
donde i es el índice que
representa la posición dentro
del arreglo donde reside el
componente a accesar.

Identificación y tamaño de

un arreglo

Identificación y tamaño de un arreglo  Cada arreglo se reconoce por un identificador y cada
Identificación y tamaño de un arreglo  Cada arreglo se reconoce por un identificador y cada

Cada arreglo se reconoce por un identificador y cada

dato se almacena en una posición indexada.

 

"Ana"

"Casa"

"Auto"

"12"

""

Posición

0

1

2

3

4

Un arreglo de largo N , tiene posiciones indexadas

mediante enteros desde 0 hasta N-1

El máximo largo posible para un arreglo corresponde al mayor valor permitido para un int

Pasos para crear un Arreglo en

java

Pasos para crear un Arreglo en java 1. Definir una variable que identifique al arreglo, indicando
Pasos para crear un Arreglo en java 1. Definir una variable que identifique al arreglo, indicando

1. Definir una variable que identifique al arreglo,

indicando la naturaleza de los datos que se almacenarán:

tipo[ ]variable

o alternativamente:

tipo variable[ ]

2. Instanciar el arreglo indicando el largo que

tendrá, y asignarlo a la variable:

variable=new tipo[entero]

Creación de un Arreglo

Creación de un Arreglo Define que la variable Edades referenciará un arreglo de enteros  int[]
Creación de un Arreglo Define que la variable Edades referenciará un arreglo de enteros  int[]
Define que la variable Edades referenciará un arreglo de enteros
Define que la variable
Edades referenciará un
arreglo de enteros

int[] edades;

edades=new int[8];

Instancia un arreglo de enteros de 8 posiciones
Instancia un arreglo de
enteros de 8 posiciones
Asigna el arreglo instanciadoa la variable edades
Asigna el arreglo
instanciadoa la
variable edades

Ejemplos de creación de

arreglos

Ejemplos de creación de arreglos  Arreglo de double de largo 4: double nota[]; nota =
Ejemplos de creación de arreglos  Arreglo de double de largo 4: double nota[]; nota =

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

Forma abreviada para crear arreglos  La definición de variable, instanciación del arreglo y su asignación
Forma abreviada para crear arreglos  La definición de variable, instanciación del arreglo y su asignación

La definición de variable, instanciación

del arreglo y su asignación a la variable puede realizarse en una sola instrucción

tipo[ ] variable=new tipo[entero];

Ejemplo

double[] nota = new double[10];

Otra forma de instanciar

arreglos

Otra forma de instanciar arreglos  También es posible instanciar arreglos escribiéndolos como literales en el
Otra forma de instanciar arreglos  También es posible instanciar arreglos escribiéndolos como literales en el

También es posible instanciar

arreglos escribiéndolos como literales en el código fuente

int[] nota ; nota ={ 23, 14, 55,18 };

Instancia un arreglo de enteros de largo 4
Instancia
un arreglo de
enteros de largo 4

Cómo recorrer un arreglo

Cómo recorrer un arreglo  secuencial.  Los ciclos for nos sirven para esto.  Observa
Cómo recorrer un arreglo  secuencial.  Los ciclos for nos sirven para esto.  Observa

secuencial. Los ciclos for nos sirven para esto.

Observa el siguiente ejemplo donde el for

Los

arreglos

son

recorridos

de

manera

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
int[] arr = {6, 2, 8, 4, 3}; for(int i = 0; i < arr.length

int[] arr = {6, 2, 8, 4, 3}; for(int i = 0; i < arr.length ; i++) { arr[i] *= arr[i];

}

int[] arr = {6, 2, 8, 4, 3}; for(int i = 0; i < arr.length ;

Cómo recorrer un arreglo

Cómo recorrer un arreglo public void imprimirNumeros(){ int numero=0; int[] vecNumeros = {6, 2, 8, 4,
Cómo recorrer un arreglo public void imprimirNumeros(){ int numero=0; int[] vecNumeros = {6, 2, 8, 4,

public void imprimirNumeros(){

int numero=0;

int[] vecNumeros = {6, 2, 8, 4, 3};

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

numero =vecNumeros[i]; System.out.println(numero);

}

}

Ejemplos:

Ejemplos:  Hacer un método que pida las 10 números y los guarde en un arreglo.
Ejemplos:  Hacer un método que pida las 10 números y los guarde en un arreglo.

Hacer un método que pida las 10 números y los guarde en un arreglo.

public void pedirNumeros(){

}

Scanner teclado = new Scanner(System.in); int numero=0; int [] vecNumeros = new int[10];

for(int

System.out.println(“Digite un numero”); numero = teclado.nextInt(); vecNumeros [i]= numero;

i = 0; i<9; i ++){

}

Ejemplo:

Ejemplo:  ¿Qué hace el siguiente programa? public void metodo(){ int a, b = 0; int[]
Ejemplo:  ¿Qué hace el siguiente programa? public void metodo(){ int a, b = 0; int[]

¿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 típico en el manejo de

arreglos

Error típico en el manejo de arreglos  Tratar de accesar una posición inexistente del arreglo,
Error típico en el manejo de arreglos  Tratar de accesar una posición inexistente del arreglo,

Tratar de accesar una posición inexistente del

arreglo, por ejemplo, la posición 10 de un arreglo

de largo 10.

Cuando lo anterior ocurre, se genera en tiempo

de ejecución una excepción denominada:

ArrayIndexOutOfBoundsException

Ejercicios

Ejercicios  Ejercicio 1 Elabore un método que sume los primeros 25 números enteros ingresados por
Ejercicios  Ejercicio 1 Elabore un método que sume los primeros 25 números enteros ingresados por

Ejercicio 1

Elabore un método que sume los primeros 25 números enteros ingresados por usuario los cuales deben ser guardados en un vector. Se desea imprimir la lista de

números y la suma de los mismos.

Ejercicio 2 Elabore un método un método para generar e imprimir un vector de 10 números enteros y encontrar el mayor

de ellos. Desplegar el resultado.

Ejercicio 3 Dadas dos listas A y B de igual número de elementos, se desea generar e imprimir una lista C con el conteniendo de las sumas de Ay B: C[i] =A[i] + B[i]

Matrices o arreglos

multidimensionales

Matrices o arreglos multidimensionales  Una matriz es una estructura de datos, o más técnicamente, memoria
Matrices o arreglos multidimensionales  Una matriz es una estructura de datos, o más técnicamente, memoria

Una matriz es una estructura de datos,

o más técnicamente,

memoria que permite almacenar una

colección de elementos, todos del mismo tipo.

espacio

de

un

La diferencia con los arreglos está en que, en las matrices, los elementos no están organizados linealmente sino que

su organización es bidimensional, es

decir, en filas y columnas.

Matrices o arreglos

multidimensionales

Matrices o arreglos multidimensionales  Conviene imaginar una matriz como una organización de celdas de memoria,
Matrices o arreglos multidimensionales  Conviene imaginar una matriz como una organización de celdas de memoria,

Conviene imaginar una matriz como una

organización de celdas de memoria, o casillas, en cada una de las cuales se puede guardar un elemento de la colección. Además, es usual dibujarla como lo ilustra la figura siguiente:

las cuales se puede guardar un elemento de la colección. Además, es usual dibujarla como lo
Matrices
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 dimensión o tamaño de una matriz es el

número filas por el número de columnas. Debe

ser claro entonces que la figura anterior es la gráfica de una matriz de dimensión 4x6.

Matrices
Matrices

La numeración de las filas y las columnas

determina que cada una de las casillas de una matriz tiene asociados dos números que la identifican de manera única. A estos

números se les llama índice de fila e índice

de columna, respectivamente. En el java las filas y las columnas se numeran desde 0.

Creación de Matrices

Creación de Matrices  Java permite siguiente forma: implementar matrices de la Tipo[ ] [ ]variable=new
Creación de Matrices  Java permite siguiente forma: implementar matrices de la Tipo[ ] [ ]variable=new

Java

permite

siguiente forma:

implementar

matrices

de

la

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

Cómo recorrer una matriz

Cómo recorrer una matriz  Las matrices son recorridas mediante dos ciclos for .  Observe
Cómo recorrer una matriz  Las matrices son recorridas mediante dos ciclos for .  Observe

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.println("");

Cómo recorrer una matriz

Cómo recorrer una matriz public void llenarUnaMatriz(){ Scanner teclado = new Scanner(System.in); int numero = 0;
Cómo recorrer una matriz public void llenarUnaMatriz(){ Scanner teclado = new Scanner(System.in); int numero = 0;

public void llenarUnaMatriz(){

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 método?

¿Qué hace el siguiente método? public boolean metodo() { int[][] matrizA = {{1, 2, 3}, {4,
¿Qué hace el siguiente método? public boolean metodo() { int[][] matrizA = {{1, 2, 3}, {4,

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

Ejercicios  Hacer un método que pida datos para una matriz 3X3 que sume los componentes
Ejercicios  Hacer un método que pida datos para una matriz 3X3 que sume los componentes

Hacer un método que pida datos para una

matriz 3X3 que sume los componentes de cada

una de las columnas y de las filas.

Hacer un método 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

método 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