02 Array
02 Array
02 Array
Cuando necesite procesar varios objetos del mismo tipo, puede guardarlos en una
**matriz** y luego procesarlos juntos como una sola unidad. Puede considerar una
matriz como una coleccion de elementos del mismo tipo. Todos los elementos se
almacenan en la memoria secuencialmente.
En Java, una matriz tiene las siguientes caracteristicas importantes:
- Una matriz es un tipo de referencia
- Todos los elementos de la matriz se almacenan en la memoria secuencialmente
- A cada elemento del arreglo se accede por su indice numerico, el primer elemento
tiene el indice 0
- Se accede al ultimo elemento mediante el indice igual al tamaño de la matriz -1
- Es posible crear una matriz para almacenar elementos de cualquier tipo.
Para declarar una matriz, debemos usar **[]** despues del tipo de elementos de la
matriz:
~~~java
int[] array; // forma 1
int array[]; // forma 2
~~~
La primera forma es la que se usa con mas frecuencia.
---
## Crear una matriz con elementos especificos
La forma mas sencilla de instanciar e inicializar una matriz es enumerar todos sus
elementos.
~~~java
int[] numbers = { 1, 2, 3, 4 };
~~~
Otra forma es inicializar una matriz usando variables:
~~~java
int a = 1, b = 2, c = 3, d = 4;
int[] numbers = { a, b, c, d }; // instanciacion e inicializacion
~~~
La forma mas general de crear una matriz es usar la palabra `new` y especificando
el numero necesario de elementos:
~~~java
int n = ...; // n es la longitud del array
int[] numbers = new int[n];
~~~
Ahora, la matriz tiene `n` elementos. Cada elementos es igual a cero (el valor por
defecto del tipo `int`). Es posibles separar la declaracion y la instanciacion en
dos lineas:
~~~java
int[] numbers; // declaracion
numbers = new int[n]; // instanciacion e inicializacion
~~~
Ademas, podemos escribir la palabra clave `new` y enumerar todos los elementos de
una matriz:
~~~java
float[] floatNumbers; // declaracion
floatNumbers = new float[] { 1.02f, 0.03f, 4f }; // instanciacion e inicializacion
~~~
Puede llenar una matriz con el metodo `fill()`.
~~~java
int size = 10;
char[] characters = new char[size];
// lanza un ArrayIndexOutOfBoundsException
~~~
---
## Ejercicios
1. Cual es el resultado del codigo
~~~java
int[] numbers = { 1, 2, 3, 4, 5 };
Arrays.fill(numbers, 1, 5, 10);
System.out.println(Arrays.toString(numbers));
// valor de n: 8
~~~
4. Inicializa un array de tipo `long`
~~~java
public class Main {
public static void main(String[] args) {
long[] longNumbers = {100000000001L, 100000000002L, 100000000003L};
System.out.println(Arrays.toString(longNumbers));
}
}
~~~
5. Igualdad de Arrays
~~~java
int[] numbers1 = { 1, 2, 3, 4 };
int[] numbers2 = { 1, 2, 3, 4 };
int[] numbers3 = { 4, 3, 2, 1 };
int[] numbers4 = { 1, 2, 3 };
// valor de n: 3
~~~