Sunteți pe pagina 1din 16

ARREGOS QUE SON Y COMO SE UTILIZAN

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:

tipo_dato [] nombre_vector = new tipo_de_dato[dimension];//ejemplo de sintaxis, esto da


1
error por el compilador
2
3
int [] miArreglo=new int [6];// ejemplo de declaración en inicialización de un vector

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.

También podemos declarar e inicializar en en 2


sentencias:

1 tipo_dato [] nombre_variable; // declara


2
3 nombre_variable = new tipo_de_dato[dimensión]; // se inicializa
CÓMO LLENAR UN VECTOR (GUARDAR ELEMENTOS EN UN
VECTOR)

Un vector se maneja a través de posiciones,


empezando desde la posición cero y para
obtener/almacenar uno de sus elementos se utiliza un
índice (una variable), el índice indica la posición del
elemento en el vector a la que se quiere acceder.
Entonces un vector como el del ejemplo con
dimensión 6, efectivamente se puede almacenar 6
elementos pero solo tendrá 5 posiciones (puesto que
se empieza desde la posición 0) a las cual se puede
acceder ya sea para almacenar u obtener
elementos almacenados.
Para almacenar un elemento en un vector se utiliza la
siguiente sintaxis:
nombre_vector [indice/posicion]=valor_asignar;

Utilizando el ejemplo anterior podríamos escribir la


siguiente sentencia:

1 miArreglo[1]=7;

Lo que hicimos fue asignar en la posición 1 del vector,


el elemento 7.
Nota importante: Tomar en cuenta que se puede
utilizar directamente la posición (como en el ejemplo
anterior) para acceder a un elemento, pero lo más
común es utilizar una variable, como se verá más
adelante.
Otra forma de inicializar un vector, es dándole sus
elementos respectivos al momento de declararlo, en
este caso no declaramos la dimensión, si no que el
compilador asigna la dimensión de acuerdo a los
elementos con los que se inicializa el vector:
tipo_dato [] nombre_variable = {valor1,valor2,valor3,valor3,N…};

1 int[] miArrreglo= {1,5,7,9,4,5,100};

CÓMO ACCEDER A UN ELEMENTO EN UN VECTOR

Para obtener un elemento desde un vector, se lo


realiza de la siguiente forma:
tipo_dato nombre_variable= nombre_vector[indice/posicion];

1 int valor= miArrreglo[3];

Se está obteniendo el elemento de la posición 3 y se


almacena en la variable de tipo entero llamada valor.
Nota importante: Cuando la dimensión de un arreglo
es demasiado grande, se puede llenar o imprimir el
contenido de un vector utilizando un ciclo for.
Si quieres seguir el tema de programación Web con
Java, puedes revisar los siguientes enlaces:
 Cómo crear un Proyecto Web en Eclipse,
 CÓMO CREAR UN CRUD EN JAVA WEB CON
JSP Y SERVLET,
 Integrar Bootstrap en un proyecto Java Web
usando Java 8.
EJEMPLO COMPLETO COMO UTILIZAR VECTORES EN JAVA

Ejemplo: Pedir 10 números por teclado y obtener la


suma, media aritmética, el número menor, el número
mayor y cuántas veces se repite cada número.

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

Ahora vamos a resumir brevemente el código


utilizado.
INGRESAR NÚMEROS
Se utiliza un for para el ingreso, que va desde la
línea 14 hasta la 17.
REALIZAR LA SUMA Y BUSCAR EL NÚMERO MAYOR

Desde la línea 19 hasta la 26, con la ayuda de un ciclo


for en la variable suma se acumula, la suma total de
todos los elementos del vector, a la variable mayor se
la inicializa en 0, con una sentencia if se va
preguntando por cada iteración si el elemento del
vector es mayor al valor que tiene actualmente la
variable mayor, si es verdad se asigna en la variable
mayor el elemento del vector, si no el valor de la
variable mayor se mantiene.
BUSCAR EL VALOR MENOR

En la línea 27 se asigna el valor mayor, contenido en


la variable mayor a la variable menor, utilizando un
ciclo for y una sentencia if, se recorre el vector y se va
preguntando si hay números menores al valor de la
variable menor, en caso de haber se actualiza el
contenido de la variable.
PROMEDIO Y NÚMERO DE VECES QUE SE REPITE CADA ELEMENTO

El promedio se obtiene en la línea 35, dividiendo la


suma obtenida para el número de elementos del
vector, para contar cuantas veces se repite un numero
se utiliza 2 ciclos for, con una variable que hace de
contador que almacena el número de veces repetidas
por elemento.
Nota importante: El método length obtiene la
dimensión que tiene un arreglo.
ARREGLOS MULTIDIMENSIONALES (MATRICES)
También conocidas como matrices, son un tipo
especial de vectores, funcionan de forma parecida
que un vector, de igual forma almacenan elementos
de un mismo tipo, el acceso a sus elementos se lo
hace utilizando índices igual que en los vectores.
La diferencia fundamental es que en las matrices se
maneja el concepto de fila y columna y por esa razón
se las trabaja de forma diferente.
COMO DECLARAR UNA MATRIZ

La declaración de una matriz se la puede hacer con la


siguiente sentencia:
tipo_dato nombre_matriz [][]= new tipo_dato [dimension_filas]
[dimension_columnas];

1 int miMatriz[][]= new int[5][2];//ejemplo declaración e inicialización

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

Existen 2 formas de llenar una matriz


La primera es dándole valores al momento de crearla
(quemando los elementos), la sintaxis sería como
sigue:
tipo_dato nombre_matriz [][]={{elemento1, elemento2, elemento3},{elemento4,
elemento5,elemento6}};

1 int miMatriz [][] = {{2,5,3},{3,6,9},{0,8,9}};

En el caso anterior hemos declarado y llenado una


matriz con elementos fijos, la dimensión de esta
matriz es de 3×3.
La llaves externas definen la matriz, para separar cada
fila lo hacemos con llaves{} internas seguido de una
coma (,) .
Para separa las columnas se utiliza una coma (,)
después de cada elemento.
La segunda forma es declararla, darle dimensiones y
luego llenarla utilizando las posiciones de acuerdo a la
siguiente sintaxis:
nombre_matriz [posfila][poscolumna]=elemento;

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

La declaración en inicialización anterior crearía en


memoria algo parecido a la siguiente imagen:

Como podemos observar las matrices al igual que los


vectores empiezan desde la posición cero (0), es por
eso que siempre para llenar o acceder a un elemento,
debemos tener en cuenta de no acceder a posiciones
que no existen.
La forma anterior que muestra como llenar una matriz
es un poco tedioso ya que si fueran muchos
elementos tendríamos que repetir líneas de código,
una buena forma de llenar una matriz es hacerlo un
poco más dinámico utilizando 2 ciclos for, uno para
manejar las filas y otro para las columnas.

1 Scanner entrada = new Scanner(System.in);


2 for (int i = 0; i < miMatriz.length; i++) {
3 for (int j = 0; j < miMatriz.length; j++) {
4 System.out.print("Ingrese un elemento: ");
5 miMatriz[i][j]=entrada.nextInt();
6 }
7 }

En este caso se ha llenado pidiendo elementos desde


la consola, en donde los indices corresponden a las
variables i e j que llenan respectivamente cada
posición de la matriz.
COMO ACCEDER A LOS ELEMENTOS DE UNA MATRIZ

De la misma forma que se puede llenar una matriz


utilizando las posiciones vista en el ejemplo anterior,
también se puede accesar a sus elementos utilizando
las posiciones.
tipo_dato variable= nombre_matriz [pos_fila][pos_columna] ;

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 for (int i = 0; i < miMatriz.length; i++) {


2 for (int j = 0; j < miMatriz.length; j++) {
3 System.out.print(String.format(" %d ",miMatriz[i][j]));
4 }
5 System.out.println();
6 }

EJEMPLO COMPLETO COMO UTILIZAR MATRICES EN JAVA

Ejemplo: Ingresar elementos en una matriz de 3×3 y


obtener e imprimir la suma y el promedio por cada fila
de la matriz.

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

Nota importante: Tanto en la declaración de vectores


como de matrices los corchetes pueden ir delante del
nombre o atrás, sin que haya algún error de
compilación, por ejemplo, ambos casos compilan
correctamente.
int [] vector = new int[10];
int vector []= new int[10];

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.
Espero que este tutorial te haya servido, comenta y
comparte esta publicación, nos vemos en la
próxima entrada

S-ar putea să vă placă și