MENU DESPLEGABLE

Arreglos unidimensionales en Java Parte 2

ARREGLOS (VECTORES) UNIDIMENSIONALES EN JAVA

Por ejemplo, supongamos que queremos guardar las notas de los 20 alumnos de una clase.
Para almacenar las notas utilizaremos un arreglo de 20 elementos de tipo double y en cada elemento del arreglo guardaremos la nota de cada alumno.

Podemos representar gráficamente el arreglo de notas de la siguiente forma:

Para acceder a cada elemento del arreglo se utiliza el nombre del arreglo y un índice que indica la posición que ocupa el elemento dentro del arreglo .

El índice se escribe entre corchetes.

El primer elemento del arreglo ocupa la posición 0, el segundo la posición 1, etc. En un arreglo 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.

  • CREAR ARRAYS UNIDIMENSIONALES
Para crear un array se deben realizar dos operaciones:
Declaración
Instanciación/Creación

Por ejemplo:
int [] ventas;  
double [] temperaturas;  
String [] nombres; 

ventas = new int[5];
temperaturas = new double[8];
nombres = new String[15];

Lo normal es que la declaración y la instanciación se hagan en una sola instrucción:
tipo []  nombreArray = new tipo[tamaño];

Por ejemplo:   int [] ventas = new int[5];
  • El tamaño del arreglo también se puede indicar durante la ejecución del programa, es decir, en tiempo de ejecución se puede pedir por teclado el tamaño del arreglo y crearlo:
 int n;
Scanner sc = new Scanner(System.in);
System.out.print("Número de elementos del array: ");
n = sc.nextInt();
int [] ventas = new int[n];

Si no hay memoria suficiente para crear el arreglo, new lanza una excepción java.lang.OutOfMemoryError.

  • DIFERENCIA ENTRE LA REFERENCIA Y EL CONTENIDO DEL ARRAY
 Debe quedar clara la diferencia entre la referencia (manejador del arreglo o nombre del arreglo) y el contenido del arreglo. El nombre del array contiene la dirección de memoria del contenido del arreglo.


  • INICIALIZAR ARREGLOS UNIDIMENSIONALES
Un arreglo es un objeto, por lo tanto, cuando se crea, a sus elementos se les asigna automáticamente un valor inicial:

0 para arreglos numéricos
'\u0000' (carácter nulo) para arreglos de caracteres
false para arreglos booleanos
null para arreglos de String y de referencias a objetos.

También podemos dar otros valores iniciales al arreglo cuando se crea. Los valores iniciales se escriben entre llaves separados por comas. Los valores iniciales deben aparecer en el orden en que serán asignados a los elementos del arreglo. El número de valores determina el tamaño del arreglo.

Por ejemplo:
double [] notas = {6.7, 7.5, 5.3, 8.75, 3.6, 6.5};

Ejemplos:
//creación de un arreglo de 4 elementos booleanos
boolean [] resultados = {true,false,true,false};
//creación de un arreglo de 7 elementos de tipo String
String [] dias = {"Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"};

  • ACCEDER A LOS ELEMENTOS DE UN ARRAY
Para acceder a cada elemento del arreglo se utiliza el nombre del arreglo y un índice que indica la posición que ocupa el elemento dentro del arreglo. El índice se escribe entre corchetes. Se puede utilizar como índice un valor entero, una variable de tipo entero o una expresión de tipo entero.

Un elemento de un arreglo se puede utilizar igual que cualquier otra variable. Se puede hacer con ellos las mismas operaciones que se pueden hacer con el resto de variables (incremento, decremento, operaciones aritméticas, comparaciones, etc).


Si se intenta acceder a un elemento que está fuera de los límites del arreglo (un elemento con índice negativo o con un índice mayor que el que corresponde al último elemento del arreglo) el compilador no avisa del error. El error se producirá durante la ejecución.

En ese caso se lanza una excepción java.lang.ArrayIndexOutOfBoundsException.

Se puede saber el número de elementos del arreglo mediante el atributo length. Podemos utilizar length para comprobar el rango del arreglo y evitar errores de acceso.

Por ejemplo: para asignar un valor a un elemento del arreglo que se leen por teclado:

Scanner sc = new Scanner(System.in);
int i, valor;
int [] a = new int[10];
System.out.print("Posición: ");
i = sc.nextInt();
System.out.print("Valor: ");
valor = sc.nextInt();
if (i>=0 && i < a.length) {
    a[i] = valor;
}

1 comentario: