Documente Academic
Documente Profesional
Documente Cultură
ARREGLOS EN JAVA
Hola que tal, esta vez vamos a ver que son los
arreglos en Java (vectores y matrices en Java). Los
arreglos pueden ser unidimensionales (también
conocidos como vectores o arrays),
Multidimensionales (matrices) que pueden ser de 2 o
3 dimensiones.
Hasta ahora para poder almacenar información (de
forma temporal) y poder utilizarla en los programas,
hemos utilizado las variables, ya sea de tipo entero,
String, double etc.
Aprende este y otros temas de Programación Java
Web. Accede gratis al Curso de Java EE y suscribete al
canal de Youtube.
Si quieres profundizar sobre el tema de variables
revisa esta entrada Variables y tipos de datos en Java.
Bueno, con lo visto hasta ahora, digamos que
queremos almacenar 25 notas de estudiantes, esto
requiere declarar 25 variables (algo razonable), pero
ahora imaginemos que necesitamos almacenar 100 o
1000 o 2000 notas, en este caso tendremos que
declara una variable para cada nota, en total serían
100 o 1000 o 2000 variables, tedioso, confuso y
cansado, verdad?
El problema anterior se optimiza utilizando un tipo de
estructuras datos que son los arreglos, los arreglos
(específicamente un vector) son un tipo especial de
objeto y permiten almacenar un conjunto de
elementos de un mismo tipo, por ejemplo enteros, o
String o char u objetos, pero no mezclados.
El compilador de Java trata a los arreglos de la misma
manera que a una variable, es decir se declaran, se
inicializan y posteriormente se utilizan.
Nota: Si te interesa seguir el tema de programación
Web con Java, puedes revisar mi Curso de
Programación Java Web, con JSP, Servlet y JPA donde
aprenderás paso a paso como desarrollar aplicaciones
web con Java.
ARREGLOS UNIDIMENSIONALES (VECTORES, ARRAYS,
ARREGLOS)
La sintaxis para declarar e inicializar un vector es la
siguiente:
En donde:
int es el tipo de dato para los elementos del
vector, con esta declaración el vector sólo puede
almacenar valores de tipo entero.
[] los corchetes le indican al compilador que no
estoy declarando una variables, si no un vector.
miArreglo es el nombre que se le da al vector,
con este nombre podré acceder a su contenido y
utilizar cuantas veces sea necesario dentro del
programa.
el operador = le dice al compilador que debe
apuntar a una zona de memoria que se va
reservar para el arreglo.
la palabra reservada new crea un espacio en
memoria para el vector y la palabra int le dice que
será de tipo entero.
[6] el número entre corchetes le indica que la
dimensión para ese arreglo será de 6, esto quiere
decir que sólo puede almacenar hasta 6
elementos enteros. Cabe aclarar que la
dimensión de un arreglo es fija, una vez
declarado, no se puede cambiar en tiempo de
ejecución.
De acuerdo a lo anterior en un vector podemos
almacenar elementos de cualquier tipo de dato (int,
char, float, double etc.).
La declaración anterior de un vector en memoria se
vería algo parecido a la siguiente imagen.
1 miArreglo[1]=7;
1 package com.ecodeup.arreglos;
2
3 import java.util.Scanner;
4
5 public class TestArreglos {
6 public static void main(String[] args) {
7 Scanner entrada = new Scanner(System.in);
8 float promedio = 0;
9 float suma = 0;
1 int mayor = 0;
0 int menor = 0;
1
1 int[] miArreglo = new int[10];
1 for (int i = 0; i < 10; i++) {
2 System.out.print("Ingrese el número en la posición " + (i) + " :");
1 miArreglo[i] = entrada.nextInt();
3 }
1 // realizar la suma, promedio y el mayor
4 for (int i = 0; i < miArreglo.length; i++) {
1 suma += miArreglo[i];
5 if (mayor < miArreglo[i]) {
1 mayor = miArreglo[i];
6 }
1 System.out.println(String.format("Posición [%d] Elemento: %d", i,
7 miArreglo[i]));
1 }
8 menor = mayor;
1 // buscar el menor
9 for (int i = 0; i < miArreglo.length; i++) {
2 if (menor > miArreglo[i]) {
0 menor = miArreglo[i];
2 }
1 }
2 //promedio
2 promedio = suma / miArreglo.length;
2 System.out.println("***Salida***");
3 // contar las veces que se repite cada número
2 int cont;
4 for (int i = 0; i < miArreglo.length; i++) {
2 cont = 0;
5 for (int j = i; j < miArreglo.length; j++) {
2 if (miArreglo[i] == miArreglo[j]) {
6 cont++;
2 }
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
3
7
3
}
8
System.out.println(String.format("El número %d se repite %d
3
veces",
9
miArreglo[i], cont));
4
}
0
System.out
4
.println(String
1
.format("La suma es %.2f, el promedio es
4
%.2f, el mayor es %d, el menor es %d",
2
suma, promedio, mayor,
4
menor));
3
}
4
4
}
4
5
4
6
4
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
5
5
En donde:
int es el tipo de dato para los elementos de la
matriz, esta matriz sólo puede almacenar valores
de tipo entero.
[] [] los 2 corchetes le indican al compilador que
no estoy declarando una variable, ni un vector, si
no una matriz.
miMatriz es el nombre que se le da a la matriz,
con este nombre podré acceder a su contenido y
utilizar cuantas veces sea necesario.
el operador = le dice al compilador que ese
vector debe apuntar a una zona de memoria que
se va reservar para la matriz.
la palabra reservada new crea un espacio en
memoria para la matriz y la palabra int le dice que
será de tipo entero.
[5] [2] el número entre corchetes le indica que la
dimensión que tendrá la matriz, el primer
corchete indica el número de filas y el segundo
corchete indica el número de columnas; es decir
tendrá 5 filas y 2 columnas.
COMO LLENAR UNA MATRIZ
1
2
3 int miMatriz [][] =new int [3][3];
4 //llenar la primera fila
5 miMatriz[0][0]=5;
6 miMatriz[0][1]=8;
7 miMatriz[0][2]=1;
8 //llenar la segunda fila
9 miMatriz[1][0]=9;
1 miMatriz[1][1]=7;
0 miMatriz[1][2]=2;
1 // llenar la tercera fila
1 miMatriz[2][0]=10;
1 miMatriz[2][1]=15;
2 miMatriz[2][2]=25;
1
3
1 int var=miMatriz[0][2];
Si continuamos con el ejemplo anterior el valor que se
almacena en la variable var es el número 1, puesto
que está en las posiciones fila 0 columna 2 de la
matriz.
Otra forma de acceder a los elementos de una matriz
es recorrerla utilizando ciclos for, en este caso vamos
a imprimir los elementos de la matriz del ejemplo
anterior.
1 package com.ecodeup.matrices;
2
3 import java.util.Scanner;
4
5 public class TestMatriz {
6
7 public static void main(String[] args) {
8 int matriz[][] = new int[3][3];
9
1 Scanner entrada = new Scanner(System.in);
0 float sumaFila = 0;
1 for (int i = 0; i < matriz.length; i++) {
1 for (int j = 0; j < matriz.length; j++) {
1 System.out.print("Ingrese el número en la fila " + (i)
2 + " columna " + j + " :");
1 matriz[i][j] = entrada.nextInt();
3 }
1
4
1
5
1
6
1
7
1
8
1
}
9
for (int i = 0; i < matriz.length; i++) {
2
sumaFila = 0;
0
for (int j = 0; j < matriz[i].length; j++) {
2
sumaFila += matriz[i][j];
1
System.out.print(String.format(" %d ", matriz[i][j]));
2
}
2
System.out.print(String.format(
2
" Suma fila: %f, promedio fila: %f ", sumaFila,
3
sumaFila
2
/ matriz.length));
4
System.out.println();
2
}
5
}
2
}
6
2
7
2
8
2
9
3
0
3
1