Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arrays en
JAVA
Revista virtual
En esta entrada
hablaremos sobre los arreglos Un arreglo es una estructura de
unidimensionales, la estructura
datos que puede almacenar un
de datos más simple pero
conjunto de datos de un mismo
básica para el tratamiento de tipo. Los datos se almacenan en
datos a una mayor escala en un
forma contigua. Observa en la
programa. figura 2 la diferencia entre un
arreglo y una variable estática
simple. Mientras que la variable
Una gran parte del x sólo puede almacenar un
procesamiento de la información único valor a la vez, el arreglo z
es precisamente la información. puede contener un conjunto de
Ya sea en su etapa inicial, en su n datos del mismo tipo. Sin
forma de datos, como en su embargo, tanto x como z son
etapa final, en forma de variables.
información, son el motivo de
que existan las tecnologías de la
información. Y hay incontables
ocasiones en que como
programadores se nos olvida
eso, y nos enfocamos más en el
“cómo” se hacen las cosas, que
en el “con qué”.
Como ya hemos comentado, la
estructura más básica es el Figura 2. Diferencia entre una variable simple
arreglo. Al arreglo también se le y un arreglo.
conoce con el nombre de vector
o array. Según Deitel & Deitel:
Declaración:
Para utilizar un arreglo, como
toda variable en Java, debe ser
primero declarado. La forma
general te la muestro en la Figura 4. Construcción de un arreglo.
DESVENTAJAS:
HOMOGENEAS: Todos los
elementos deben ser del Algunas de las desventajas de los
mismo tipo. arreglos unidimensionales son:
ORDENADAS: Debe haber un
primer elemento, un segundo
elemento y así sucesivamente Los datos que se guarden en
FINITA: Debe determinarse los arreglos todos deben ser
cuál será el número máximo del mismo tipo.
de elementos que podrán Para implementar arreglos
formar parte del arreglo. unidimensionales se debe
TAMAÑO FINITO: El tamaño reservar espacio en memoria.
del array debe ser conocido en Limitan en cuanto a capacidad
tiempo de compilación, todos de maniobra.
los elementos tienen
significado
Veamos un ejemplo
Supongamos que queremos guardar las notas de los 20 alumnos
de una clase.
Para almacenar las notas utilizaremos un array de 20 elementos de
tipo double y en cada elemento del array guardaremos la nota de cada
alumno.
Podemos representar gráficamente el array de notas de la siguiente
forma:
Array notas:
Para acceder a cada elemento del array se utiliza el nombre del array
y un índice que indica la posición que ocupa el elemento dentro del
array.
El índice se escribe entre corchetes.
El primer elemento del array ocupa la posición 0, el segundo la
posición 1, etc. En un array de N elementos el último ocupará la
posición N-1.
En el ejemplo anterior, notas[0] contiene la nota del primer alumno y
notas[19] contiene la del último
Los índices deben ser enteros no negativos.
Ejercicio resuelto
Crea un array de números de un tamaño pasado por teclado, el array contendrá
números aleatorios primos entre los números deseados, por último nos indica cual
es el mayor de todos. Haz un método para comprobar que el número aleatorio es
primo, puedes hacer todos los métodos que necesites.
import javax.swing.JOptionPane;
//Indicamos el tamaño
String texto=JOptionPane.showInputDialog(" Introduce
un tamaño ");
int num[]=new int[Integer.parseInt(texto)];
mostrarArray(num);
int i=0;
//declaracion
int prueba;
int contador=0;
//Hacemos la raiz cuadrada y lo usamos para
dividir el numero original
prueba=(int)Math.sqrt(num);
//Bucle que cuenta los numeros divisibles,
podemos hacerlo con while
for (;prueba>1;prueba--){
if (num%prueba==0){
contador+=1;
}
}
return contador < 1;
}
}
return mayor;
}
}
Es muy común llamarles
arreglos bidimensionales, arreglos 2d,
o matrices, pero en realidad, se tratan Al igual que los arreglos
de un arreglo de arreglos. Sólo que unidimensionales, las dimensiones de
para su manipulación lógica, ha sido una matriz deben:
más conveniente pensar en ellos
Ser un valor entero.
como una tabla de valores.
Pueden expresarse como
Declaración constantes numéricas (10,
100, 1000, etc)
La declaración de un arreglo
bidimensional en Java se muestra a
arreglo = new int[10][5];
continuación:
Veamos un ejemplo
Este arreglo es de tamaño 3 x 5
Los arreglos bidimensionales se usan
para representar datos que pueden 3 filas
verse como una tabla con filas y
columnas. La primera dimensión del 5 columnas
arreglo representa las columnas,
cada elemento contiene un valor y
cada dimensión representa una
relación.
La representación en memoria se
realiza de dos formas:
almacenamiento por columnas o por
renglones.
Ejercicio resuelto
Crear una matriz de 5 filas y n columnas (se pide al usuario). Rellenarlo con
números aleatorios entre 0 y 10.
1. import java.util.Scanner;
2.
3. public class Ejercicio_2 {
4.
5.
6. public static void main(String[] args) {
7.
8. Scanner sn=new Scanner(System.in);
9.
10. System.out.println("Escriba un numero de columnas ");
11. int columnas=sn.nextInt();
12.
13. int matriz[][]=new int[5][columnas];
14.
15. for(int i=0;i<matriz.length;i++){
16. for(int j=0;j<matriz[0].length;j++){
17. matriz[i][j]=generaNumAleatorio(0,9);
18. System.out.print(matriz[i][j]+" ");
19. }
20. System.out.println("");
21.
22. }
23.
24. }
25.
26. public static int generaNumAleatorio(int minimo,int maximo){
27.
28. Return (int)Math.floor(Math.random()*(minimo-
(maximo+1))+(maximo+1));
29.
30. }
31.
32.}
Características
La clase Vector, al igual que
ArrayList o LinkedList, también
implementa a List, pero de un modo
La clase Vector es una
especial. Este modo especial es
estructura dinámica (no como el
sincronizado, lo que permite que se
vector que hacemos comúnmente),
pueda usar en entornos concurrentes
esta clase pertenece a las librerías
(es decir, en varios procesos que se
propias de Java, y en ocasiones
ejecutan al mismo tiempo y hacen
puede llegar a ser muy útil y es muy
uso posiblemente de los mismos
fácil de usar.
recursos). Esta además es la
Esta clase contiene una serie principal característica que la
de métodos con los que podemos diferencia de otras clases como
entre otras cosas: agregar un ArrayList.
elemento, remover un elemento,
modificar un elemento, insertar un
elemento en una posición dada. Otra Vamos a ver las principales
característica de este "vector" es que características de esta clase, que
al ser dinámico no ocupa que le además es muy parecida a ArrayList.
demos un tamaño predeterminado, él
puede agrandarse y encogerse
cuando lo requiera así que no va a
Un objeto de tipo Vector
gastar espacio innecesariamente
contiene elementos que pueden ser
conteniendo espacios vacíos (al
accedidos por un índice y puede
menos que ustedes lo agreguen).
aumentar o disminuir su tamaño
dinámicamente en tiempo de
ejecución.
Declaración
Para importarlo escribimos
Un vector es similar a un array,
esta línea:
la diferencia estriba en que un vector
1. import java.util.Vector; crece automáticamente cuando
alcanza la dimensión inicial máxima.
Es decir hay una relación entre cada componente de los dos vectores.
Veamos un ejemplo
Desarrollar un programa que permita cargar 5 nombres de personas y sus edades
respectivas. Luego de realizar la carga por teclado de todos los datos imprimir los
nombres de las personas mayores de edad (mayores o iguales a 18 años)
import java.util.Scanner;
public class PruebaVector10 {
private Scanner teclado;
private String[] nombres;
private int[] edades;
Manuel Zambrano
C.I: 28.150.444
Sección: 06S-2613-D1