Arrays.fill y copyOf
Rellene y cambie el tamaño de los arrays
Arrays.fill y copyOf es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 4 lecciones en total.
Rellenar arrays
Arrays.fill asigna el mismo valor a todos los elementos de un array. Modifica el array directamente y resulta útil para inicializar o restablecer datos.
Un relleno básico
Rellene un array completo con un único valor.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = new int[5];
Arrays.fill(nums, 7);
System.out.println(Arrays.toString(nums));
}
}Rellenar un rango
Arrays.fill(array, from, to, value) rellena solo una parte del array. El rango incluye from y excluye to.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = new int[6];
Arrays.fill(nums, 2, 5, 9);
System.out.println(Arrays.toString(nums));
}
}Rellenar arrays de objetos
fill también funciona con arrays de objetos. Tenga en cuenta que cada posición apunta a la misma referencia cuando rellena el array con un objeto.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[] grid = new String[4];
Arrays.fill(grid, "empty");
System.out.println(Arrays.toString(grid));
}
}Cambiar el tamaño con copyOf
Los arrays tienen una longitud fija. Para obtener un array más grande o más pequeño, Arrays.copyOf(array, newLength) devuelve un array nuevo del tamaño solicitado.
Ampliar un array
Cuando la nueva longitud es mayor, las posiciones adicionales reciben el valor predeterminado: 0 para los tipos numéricos, false para los booleanos y null para los objetos.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = {1, 2, 3};
int[] bigger = Arrays.copyOf(nums, 5);
System.out.println(Arrays.toString(bigger));
}
}Reducir un array
Cuando la nueva longitud es menor, el array se trunca y se eliminan los elementos finales.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = {1, 2, 3, 4, 5};
int[] smaller = Arrays.copyOf(nums, 3);
System.out.println(Arrays.toString(smaller));
}
}Copiar un rango
Arrays.copyOfRange(array, from, to) copia un segmento en un array nuevo. Nuevamente, from es inclusivo y to es exclusivo.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = {10, 20, 30, 40, 50};
int[] middle = Arrays.copyOfRange(nums, 1, 4);
System.out.println(Arrays.toString(middle));
}
}copyOf no modifica el array
A diferencia de fill, copyOf deja intacto el array original y devuelve un array completamente nuevo. El original y la copia son independientes.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] original = {1, 2, 3};
int[] copy = Arrays.copyOf(original, 3);
copy[0] = 99;
System.out.println("Original: " + Arrays.toString(original));
System.out.println("Copy: " + Arrays.toString(copy));
}
}Una forma manual de cambiar el tamaño
Antes de ArrayList, los programas ampliaban los arrays copiándolos en uno más grande. copyOf duplica la capacidad en una sola llamada.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] data = {1, 2, 3, 4};
data = Arrays.copyOf(data, data.length * 2);
data[4] = 5;
System.out.println(Arrays.toString(data));
}
}fill frente a copyOf
Recuerde la diferencia: fill sobrescribe las posiciones existentes directamente y devuelve void; copyOf crea una copia con un tamaño diferente y la devuelve. Elija según necesite o no una nueva longitud.
Comprobación rápida
Compruebe su comprensión de fill y copyOf.
Repaso
Aprendió a rellenar y cambiar el tamaño de los arrays.
Arrays.fillestablece todos los elementos, o un rango de ellos, en un mismo valor directamente.Arrays.copyOfdevuelve un array nuevo con una longitud determinada, rellenándolo o truncándolo según sea necesario.Arrays.copyOfRangecopia un segmento.- copyOf no es destructivo; fill modifica el array.
Preguntas frecuentes
¿La lección «Arrays.fill y copyOf» es gratis?
Sí — el texto completo de «Arrays.fill y copyOf» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Arrays.fill y copyOf»?
Rellene y cambie el tamaño de los arrays Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Java Academy?
No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Arrays.fill y copyOf»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Java Academy?
Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Arrays.sort y ordenación
- Arrays.binarySearch
- Arrays.fill y copyOf
- Arrays.equals y toString