¿Qué es un array?
Un array es como una caja con compartimentos.
Cada compartimento puede guardar un valor del mismo tipo (por ejemplo, números, palabras, etc.).
Imagina una caja de huevos con 12 espacios. Puedes guardar 12 huevos. No puedes meter leche o pan.
En un array de enteros (int
), solo puedes guardar números enteros.
¿Por qué usar arrays?
Porque te permite guardar muchos datos en una sola variable y luego acceder a cada uno fácilmente.
Sin array:
int edad1 = 20;
int edad2 = 25;
int edad3 = 22;
Con array:
int[] edades = new int[3];
edades[0] = 20;
edades[1] = 25;
edades[2] = 22;
¿Cómo se crea un array?
Paso 1️⃣ – Declarar el array
Primero le dices a Java que vas a usar un array.
int[] numeros;
Esto significa: “Voy a tener un array de enteros llamado numeros
“.
Paso 2️⃣ – Crear el array
Ahora le dices cuántos espacios tendrá:
numeros = new int[5];
Con esto le estás diciendo: “Reserva espacio para 5 números enteros”.
Paso 3️⃣ – Declarar y crear a la vez (lo más común):
int[] numeros = new int[5];
Esto hace las dos cosas al mismo tiempo (crea y declara el array).
¿Cómo guardar datos en un array?
El array tiene índices (números que indican las posiciones), y empiezan en 0, no en 1.
int[] edades = new int[3];
edades[0] = 18; // Primera posición
edades[1] = 21; // Segunda posición
edades[2] = 30; // Tercera posición
¿Cómo leer datos de un array?
System.out.println(edades[1]); // Muestra 21
Recorrer un array con un bucle for
Cuando tienes muchos valores, puedes usar un bucle para leerlos todos.
Vamos a suponer que tenemos algo como esto:
int[] edades = new int[3];
edades[0] = 18;
edades[1] = 21;
edades[2] = 30;
Ahora, si usamos este array junto con el bucle:
for (int i = 0; i < edades.length; i++) {
System.out.println("Edad en posición " + i + ": " + edades[i]);
}
La salida en consola sería:
Edad en posición 0: 18
Edad en posición 1: 21
Edad en posición 2: 30
¿Qué está pasando aquí?
edades.length
vale3
(porque hay 3 elementos).- El bucle empieza en
i = 0
y termina cuandoi
ya no es menor que3
. - En cada vuelta del bucle, se imprime el índice (
i
) y el valor en esa posición (edades[i]
).
Inicialización rápida (rellenar rápidamente)
Cuando ya sabes los datos, puedes hacer esto:
int[] numeros = {5, 10, 15, 20}; // 4 elementos
String[] dias = {"Lunes", "Martes", "Miércoles"};
Usar arrays en métodos (funciones)
Puedes pasar un array a un método, es decir, puedes enviar un array como argumento (parámetro) a una función o método para que ese método trabaje con él. Es como decir:
“Ey, función, aquí tienes esta lista de datos… ¡haz algo con ellos!”
Veamos el ejemplo en partes:
1. El método sumar
int sumar(int[] numeros) {
int suma = 0;
for (int i = 0; i < numeros.length; i++) {
suma += numeros[i];
}
return suma;
}
¿Qué hace este método?
- Recibe como parámetro un array de enteros llamado
numeros
. - Crea una variable
suma
que empieza en 0. - Usa un bucle
for
para recorrer cada número del array. - En cada vuelta del bucle, va sumando cada número del array a la variable
suma
. - Al final, devuelve la suma total.
Por ejemplo:
Si numeros
es [10, 20, 30]
,
el método sumará así: 10 + 20 + 30 = 60
.
2. Llamar al método desde el programa principal
int[] valores = {10, 20, 30};
int resultado = sumar(valores);
System.out.println("Suma total: " + resultado);
¿Qué pasa aquí?
- Se crea un array llamado
valores
con 3 números. - Se llama a la función
sumar(valores)
→ le estás pasando ese array a la función. - Lo que devuelve la función se guarda en la variable
resultado
. - Luego se imprime el resultado con
System.out.println
.
Entonces, la salida en la consola será:
Suma total: 60
3. Código completo
public class EjemploArrayEnMetodo {
// Método que recibe un array de enteros y devuelve la suma
static int sumar(int[] numeros) {
int suma = 0;
// Recorremos el array entero
for (int i = 0; i < numeros.length; i++) {
suma += numeros[i]; // Vamos sumando cada número
}
return suma; // Devolvemos el total
}
public static void main(String[] args) {
int[] valores = {10, 20, 30}; // Creamos un array con 3 valores
int resultado = sumar(valores); // Llamamos al método y guardamos el resultado
System.out.println("Suma total: " + resultado); // Mostramos el resultado
}
}
Muy importante: Arrays y métodos
Cuando pasas un valor normal (por ejemplo, int) a un método, ese valor no cambia afuera.
Pero cuando pasas un array, los cambios sí afectan afuera, porque estás trabajando con una referencia al array original.
Ejemplo:
void cambiarPrimerElemento(int[] numeros) {
numeros[0] = 999;
}
Y luego:
int[] datos = {1, 2, 3};
cambiarPrimerElemento(datos);
System.out.println(datos[0]); // Muestra 999
¿Qué es un array de objetos?
Un array de objetos es como una fila de casillas (espacios en memoria) donde cada casilla puede guardar un objeto (no solo números como int
, sino por ejemplo un StringBuilder
, un String
, o cualquier clase que tú hayas creado).
Ejemplo con objetos:
StringBuilder[] sb = new StringBuilder[3]; // Guarda 3 objetos StringBuilder
🚨 ¡Pero ojo! Aquí está lo importante: Cuando haces esto:
StringBuilder[] sb = new StringBuilder[3];
Estás creando el array, es decir: reservas espacio para 3 objetos… PERO esos objetos todavía no existen. Cada casilla del array tiene el valor null
(lo que en Java significa “aún no hay nada aquí”).
¿Cómo se llena el array con objetos?
Tienes que crear los objetos uno por uno y guardarlos dentro del array.
Esto lo haces con un bucle:
for (int i = 0; i < sb.length; i++) {
sb[i] = new StringBuilder("Texto " + i);
}
¿Qué pasa aquí?
sb.length
→ es 3, porque el array tiene 3 espacios.- En cada vuelta del bucle, se crea un
StringBuilder
nuevo. - Ese objeto se guarda en la posición correspondiente del array (
sb[i]
).
Entonces, terminas con un array que ya no está vacío, sino que tiene esto:
sb[0] = StringBuilder("Texto 0")
sb[1] = StringBuilder("Texto 1")
sb[2] = StringBuilder("Texto 2")
¿Y cómo se usa después?
Puedes trabajar con el array como con cualquier otro:
System.out.println(sb[1]); // Muestra: Texto 1
sb[2].append(" (agregado)"); // Modifica el objeto en la posición 2
System.out.println(sb[2]); // Muestra: Texto 2 (agregado)
Código completo de ejemplo
public class ArrayDeObjetos {
public static void main(String[] args) {
// Creamos un array para 3 objetos StringBuilder
StringBuilder[] sb = new StringBuilder[3];
// Llenamos el array con objetos
for (int i = 0; i < sb.length; i++) {
sb[i] = new StringBuilder("Texto " + i);
}
// Mostramos el contenido del array
for (int i = 0; i < sb.length; i++) {
System.out.println("Elemento " + i + ": " + sb[i]);
}
}
}
Salida:
Elemento 0: Texto 0
Elemento 1: Texto 1
Elemento 2: Texto 2
Actividades de programación
Actividad 1: Sumar valores de un array
Objetivo: Recorrer un array de enteros y calcular la suma total.
- Crea un array con los valores
{5, 10, 15, 20, 25}
- Usa un bucle
for
para sumar todos los elementos - Muestra el resultado con
System.out.println
public class SumaArray {
public static void main(String[] args) {
int[] numeros = {5, 10, 15, 20, 25};
int suma = 0;
for (int i = 0; i < numeros.length; i++) {
suma += numeros[i];
}
System.out.println(“Suma total: ” + suma);
}
}
Actividad 2: Contar cuántos son mayores que X
Objetivo: Contar cuántos números son mayores a un número dado.
- Crea un array de enteros con al menos 10 números
- Pide al usuario un número (con
Scanner
) - Recorre el array y cuenta cuántos son mayores que ese número
- Muestra el total por pantalla
import java.util.Scanner;
public class ContarMayores {
public static void main(String[] args) {
int[] datos = {4, 7, 12, 8, 5, 20, 18, 3, 15, 10};
Scanner sc = new Scanner(System.in);
System.out.print(“Introduce un número: “);
int numero = sc.nextInt();
int contador = 0;
for (int i = 0; i < datos.length; i++) {
if (datos[i] > numero) {
contador++;
}
}
System.out.println(“Hay ” + contador + ” números mayores que ” + numero);
sc.close();
}
}
Actividad 3: Invertir un array
Objetivo: Mostrar los elementos de un array en orden inverso.
🔹 Instrucciones:
- Crea un array de
String
con palabras:{"Hola", "Java", "Array", "Inverso"}
- Recorre el array de atrás hacia adelante
- Muestra cada palabra en consola
public class InvertirArray {
public static void main(String[] args) {
String[] palabras = {“Hola”, “Java”, “Array”, “Inverso”};
System.out.println(“Array en orden inverso:”);
for (int i = palabras.length – 1; i >= 0; i–) {
System.out.println(palabras[i]);
}
}
}
Actividad 4: Buscar un valor en un array
Objetivo: Encontrar si un valor existe dentro de un array.
- Crea un array de
String
con nombres de personas - Pide al usuario que escriba un nombre
- Recorre el array y muestra si existe o no existe
- Opcional: muestra también la posición donde se encuentra
import java.util.Scanner;
public class BuscarNombre {
public static void main(String[] args) {
String[] nombres = {“Ana”, “Luis”, “Carlos”, “Marta”, “Lucía”};
Scanner sc = new Scanner(System.in);
System.out.print(“Introduce el nombre a buscar: “);
String nombreBuscar = sc.nextLine();
boolean encontrado = false;
for (int i = 0; i < nombres.length; i++) {
if (nombres[i].equalsIgnoreCase(nombreBuscar)) {
System.out.println(“El nombre existe en la posición ” + i);
encontrado = true;
break;
}
}
if (!encontrado) {
System.out.println(“El nombre no se encuentra en la lista.”);
}
sc.close();
}
}
Actividad 5: Calcular el promedio de notas
Objetivo: Calcular el promedio de los valores de un array.
- Usa un array
double[]
para guardar notas de un estudiante - El usuario ingresa la cantidad de notas y sus valores
- Calcula la media
- Muestra si está aprobado (>=5) o suspenso
import java.util.Scanner;
public class PromedioNotas {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print(“¿Cuántas notas vas a ingresar?: “);
int cantidad = sc.nextInt();
double[] notas = new double[cantidad];
double suma = 0;
for (int i = 0; i < notas.length; i++) {
System.out.print(“Introduce la nota ” + (i + 1) + “: “);
notas[i] = sc.nextDouble();
suma += notas[i];
}
double promedio = suma / cantidad;
System.out.println(“Promedio: ” + promedio);
if (promedio >= 5) {
System.out.println(“¡Aprobado!”);
} else {
System.out.println(“Suspenso.”);
}
sc.close();
}
}