// Definimos nuestra clase Arreglo
public class Arreglo {
// Atributo privado: array de enteros - encapsulación
private int[] items;
// Constructor: inicializa el arreglo con tamaño "longitud"
public Arreglo(int longitud){
// Creamos un array de enteros con la longitud dada
items = new int[longitud];
}
}Lo que pasa es lo siguiente: hasta ahora, cuando usas items.length, en realidad estás recorriendo toda la memoria reservada, no los elementos que de verdad están en el arreglo dinámico.
Por ejemplo:
Creamos un Arreglo(3) → internamente items = new int[3] → en Java eso son 3 posiciones inicializadas en 0.
Si llamas imprimir(), recorres las 3 posiciones → ves 0, 0, 0.
Pero conceptualmente no hemos insertado nada todavía.
Para solucionar eso, necesitamos un contador (count) que guarde cuántos elementos reales tiene el arreglo.
public class Arreglo {
private int[] items;
// Nuevo campo: número de elementos realmente insertados
private int contador;
public Arreglo(int longitud){
items = new int[longitud];
contador = 0; // al inicio, el arreglo está vacío
}
public void imprimir() {
for (int i = 0; i < contador; i++)
System.out.println(items[i]);
}
}