5-La Clase Array-Unidimensionales PDF
5-La Clase Array-Unidimensionales PDF
5-La Clase Array-Unidimensionales PDF
LA CLASE ARRAY
Un array o matriz es simplemente una variable que puede contener valores múltiples, a
diferencia de una variable regular que solo puede contener un único valor.
Los siguientes son algunos puntos importantes acerca de las matrices, arreglos o arrays de
Java.
Una array o matriz es una colección de variables del mismo tipo, a la que se hace
referencia por un nombre común. En Java, los arrays pueden tener una o más dimensiones,
aunque el array unidimensional es el más común.
2. Arrays unidimensionales
Un array unidimensional es una lista de valores relacionados. Aglutinan datos del mismo tipo.
tipo nombreArray[];
tipo[] nombreArray;
1
FRANCISCA PIZARRO SUAREZ
Aunque la primera declaración anterior establece el hecho de que intArray es una variable de
matriz, en realidad no existe una matriz. Simplemente le dice al compilador que la variable
(intArray) contendrá una matriz de tipo entero. Para vincular intArray con una matriz física real
de enteros, debe asignar una usando new y asignarlo a intArray.
Ejemplo:
2
FRANCISCA PIZARRO SUAREZ
En el ejemplo anterior se crea un array de tres enteros (con los tipos básicos se crea en
memoria el array y se inicializan los valores, los números se inician a 0).
Al crear un array de esta forma, Java asigna valores por defecto a sus elementos:
Los valores del array se asignan utilizando el índice del mismo entre corchetes:
notas[0]=8;
notas[1]=7;
notas[2]=9;
Esto declara e inicializa un array de tres elementos. En el ejemplo lo que significa es que
notas[0] vale 8, notas[1] vale 7 y notas[2] vale 9.
Un array se puede asignar a otro array (si son del mismo tipo):
3
FRANCISCA PIZARRO SUAREZ
int a[];
int b[]=new int[]{3,4,5,6,7,8};
a=b;
for…each
En las últimas versiones de Java se introdujo una nueva forma de uso del for, a la que se
denomina “for extendido” o “for each”. Esta forma de uso del for, que ya existía en otros
lenguajes, facilita el recorrido de objetos existentes en una colección sin necesidad de definir el
número de elementos a recorrer.
for(int elemento:arr){
4
FRANCISCA PIZARRO SUAREZ
https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html
Los métodos de la clase Array se encuentran en el paquete java.util.Arrays, este paquete hay
que importarlo.
import java.util.Arrays;
Class Arrays
java.lang.object
|------ java.util.Arrays
En el paquete java.utils se encuentra una clase estática llamada Arrays. Una clase estática
permite ser utilizada como si fuera un objeto (como ocurre con Math), es decir que para utilizar
sus métodos hay que utilizar simplemente esta sintaxis:
Arrays.método(argumentos);
equals
Compara dos arrays y devuelve true si son iguales. Se consideran iguales si son del
mismo tipo, tamaño y contienen los mismos valores. A diferencia del operador de
igualdad (==), este operador sí compara el contenido. Ejemplo (comparación entre el
operador de igualdad y el método equals):
int[] a= {2,3,4,5,6};
int[] b= {2,3,4,5,6};
int[] c=a;
System.out.println(a==b); //false
System.out.println(Arrays.equals(a,b)); //true
System.out.println(a==c); //true
System.out.println(Arrays.equals(a,c)); //true
sort
Permite ordenar un array en orden ascendente. Se pueden ordenar todo el array o bien
desde un elemento a otro:
int[] x={4,5,2,3,7,8,2,3,9,5};
Arrays.sort(x,2,5); //El array queda {4 5 2 3 7 8 2 3 9 5} se incluyen los indices
Arrays.sort(x); //Estará completamente ordenado
5
FRANCISCA PIZARRO SUAREZ
sort ordena de forma ascendente (de menor a mayor). Para ordenar un array de forma
descendente (de mayor a menor) hay que indicarlo utilizando el método reverseOrder() de la
clase Collections.
import java.util.Collections;
Por ejemplo, para ordenar el array nombres de forma descendente escribimos la instrucción
Arrays.sort de la siguiente forma:
Arrays.sort(nombres, Collections.reverseOrder());
También tenemos la opción de ordenar sólo una parte del array, indicando la posición del
elemento inicial y la del elemento final (que no se incluye en la ordenación).
Con Arrays.sort podemos ordenar arrays de cualquier tipo de datos. Por ejemplo, para ordenar
un array de enteros:
Arrays.sort(numeros);
//mostrarlo ordenado
System.out.println(n);
Por este motivo si queremos ordenar de forma descendente arrays de tipos de datos simples
debemos utilizar la clase envolvente equivalente al tipo de dato básico. Puedes ver las clases
envolventes que corresponden a cada tipo de dato en esta entrada.
Por ejemplo, para ordenar un array de enteros de forma descendente hay que declararlo de
tipo Integer en lugar de int.
Arrays.sort(numeros, Collections.reverseOrder());
System.out.println(n);
6
FRANCISCA PIZARRO SUAREZ
binarySearch
Permite buscar un elemento de forma ultrarrápida en un array ordenado (en un array
desordenado sus resultados son impredecibles). Devuelve el índice en el que está
colocado el elemento. Ejemplo:
int[] x={1,2,3,4,5,6,7,8,9,10,11,12};
Arrays.sort(x);
System.out.println(Arrays.binarySearch(x,8)); //Escribe: 7
copyOf
Obtiene una copia de un array. Recibe dos parámetros: el primero es el array a copiar y
el segundo el tamaño que tendrá el array resultante.
De modo que:
Si el tamaño es menor que el del array original, sólo obtiene copia de los
primeros elementos (tantos como indique el tamaño).
int[] a = {1,2,3,4,5,6,7,8,9};
int[] b=Arrays.copyOf(a, a.length); //b es {1,2,3,4,5,6,7,8,9}
int[] c=Arrays.copyOf(a, 12); //c es {1,2,3,4,5,6,7,8,9,0,0,0}
int[] d=Arrays.copyOf(a, 3); //d es {1,2,3}
copyOfRange
Funciona como la anterior, sólo que indica con dos números de qué elemento a qué
elemento se hace la copia:
int[] a = {1,2,3,4,5,6,7,8,9};
int []b=Arrays.copyOfRange(a, 3,6); //b vale {4,5,6}
fill
Permite rellenar todo un array unidimensional con un determinado valor. Sus
argumentos son el array a rellenar y el valor deseado:
7
FRANCISCA PIZARRO SUAREZ
DATO
NOMBRE DESCRIPCIÓN PARÁMETROS
DEVUELTO
binarySearch Busca un valor que le pasamos Un array y un valor. Los dos del mismo tipo. int
por parámetro, devuelve su Estos pueden ser un byte, char, double, float,
posición. Debe estar ordenado. int, long, short u objecto.
copyOf Copia un array y lo devuelve Un array y la longitud. Si se pasa del tamaño array del mismo
en un nuevo array. del array original, rellena los con ceros las tipo que se
posiciones sobrantes. Estos pueden ser un introduce
byte, char, double, float, int, long, short u
objecto.
copyOfRange Copia un array y lo devuelve Un array, posición origen y destino. Estos array del mismo
en un nuevo array. Le pueden ser un byte, char, double, float, int, tipo que se
indicamos la posición de origen long, short u objecto. introduce.
y de destino.
equals Indica si dos arrays son Dos arrays del mismo tipo. true o false
iguales.
fill Rellena un array con un valor Un array y el valor a rellenar. Estos pueden ser No devuelve nada
que le indiquemos como un byte, char, double, float, int, long, short u
parámetro. objecto.
toString Muestra el contenido del array Un array. Estos pueden ser un byte, char, Devuelve una
pasado como parámetros double, float, int, long, short u objecto. cadena con el
contenido del
array.
8
FRANCISCA PIZARRO SUAREZ