En Java, los arrays son una forma de almacenar varios valores del mismo tipo en una única estructura. A diferencia de otras estructuras de datos, los arrays tienen un tamaño fijo una vez creados. Los elementos se pueden asignar a un array u obtener de él usando un índice. Los arrays de Java usan indexación basada en cero: el índice del primer elemento es 0, el del segundo es 1, etc.
Esta es la sintaxis estándar para inicializar un array:
type[] variableName = new type[size];
El type es el tipo de los elementos del array, que puede ser un tipo primitivo (por ejemplo, int) o una clase (por ejemplo, String).
El size es el número de elementos que contendrá este array (que no se puede cambiar después).
Después de crear el array, los elementos se inicializan con sus valores predeterminados (normalmente 0, false o null).
// Declare array with explicit size (size is 2)
int[] twoInts = new int[2];
Los arrays también se pueden definir usando una notación abreviada que te permite tanto crear el array como establecer su valor:
// Two equivalent ways to declare and initialize an array (size is 3)
int[] threeIntsV1 = new int[] { 4, 9, 7 };
int[] threeIntsV2 = { 4, 9, 7 };
Como el compilador ahora puede saber cuántos elementos tendrá el array, se puede omitir la longitud.
Los elementos del array se pueden asignar y consultar usando una notación de índice entre corchetes:
// Assign second element by index
twoInts[1] = 8;
// Retrieve the second element by index and assign to the int element
int secondElement = twoInts[1];
Acceder a un índice que está fuera de los índices válidos del array provoca una IndexOutOfBoundsException.
Los arrays se pueden manipular llamando a los métodos o propiedades de una instancia de array, o usando los métodos estáticos definidos en la clase Arrays (normalmente solo se usan en código genérico).
La propiedad length contiene la longitud de un array.
Se puede acceder a ella así:
int arrayLength = someArray.length;
Java también proporciona una útil clase de utilidad java.util.Arrays que tiene muchos métodos útiles relacionados con arrays (por ejemplo, Arrays.equals).
Java también admite arrays multidimensionales como int[][] arr = new int[3][4];, que pueden ser muy útiles.
El hecho de que un array también sea una colección significa que, además de acceder a los valores por índice, puedes iterar sobre todos sus valores usando un bucle for-each:
char[] vowels = { 'a', 'e', 'i', 'o', 'u' };
for(char vowel: vowels) {
// Output the vowel
System.out.print(vowel);
}
// => aeiou
Si quieres tener más control sobre qué valores iterar, puedes usar un bucle for:
char[] vowels = { 'a', 'e', 'i', 'o', 'u' };
for (int i = 0; i < 3; i++) {
// Output the vowel
System.out.print(vowels[i]);
}
// => aei
Eres un gran aficionado a la observación de aves y llevas la cuenta de cuántos pájaros han visitado tu jardín en los últimos siete días.
Tienes seis tareas, todas relacionadas con el número de pájaros que han visitado tu jardín.
Para poder comparar, siempre tienes cerca una copia de los recuentos de la semana pasada, que eran: 0, 2, 5, 3, 7, 8 y 4. Implementa el método BirdWatcher.getLastWeek(), que devuelve los recuentos de la semana pasada:
BirdWatcher.getLastWeek();
// => [0, 2, 5, 3, 7, 8, 4]
Implementa el método BirdWatcher.getToday() para devolver cuántos pájaros han visitado tu jardín hoy. Los recuentos de pájaros están ordenados por día: el primer elemento es el recuento del día más antiguo y el último es el recuento de hoy.
int[] birdsPerDay = { 2, 5, 0, 7, 4, 1 };
BirdWatcher birdCount = new BirdWatcher(birdsPerDay);
birdCount.getToday();
// => 1
Implementa el método BirdWatcher.incrementTodaysCount() para incrementar el recuento de hoy:
int[] birdsPerDay = { 2, 5, 0, 7, 4, 1 };
BirdWatcher birdCount = new BirdWatcher(birdsPerDay);
birdCount.incrementTodaysCount();
birdCount.getToday();
// => 2
Implementa el método BirdWatcher.hasDayWithoutBirds(), que devuelve true si hubo un día en el que ningún pájaro visitó el jardín; en caso contrario, devuelve false:
int[] birdsPerDay = { 2, 5, 0, 7, 4, 1 };
BirdWatcher birdCount = new BirdWatcher(birdsPerDay);
birdCount.hasDayWithoutBirds();
// => true
Implementa el método BirdWatcher.getCountForFirstDays(), que devuelve el número de pájaros que han visitado tu jardín desde el comienzo de la semana, pero limita el recuento al número de días especificado desde el principio de la semana.
int[] birdsPerDay = { 2, 5, 0, 7, 4, 1 };
BirdWatcher birdCount = new BirdWatcher(birdsPerDay);
birdCount.getCountForFirstDays(4);
// => 14
Algunos días son más ajetreados que otros. Un día ajetreado es aquel en el que cinco o más pájaros han visitado tu jardín.
Implementa el método BirdWatcher.getBusyDays() para devolver el número de días ajetreados:
int[] birdsPerDay = { 2, 5, 0, 7, 4, 1 };
BirdWatcher birdCount = new BirdWatcher(birdsPerDay);
birdCount.getBusyDays();
// => 2
Regístrate en Exercism para aprender y dominar Java con 26 conceptos158 ejercicios y mentoría humana real, todo gratis.