import java.util.ArrayList;

// ArrayList guarda objetos: los int se envuelven en Integer (autoboxing).
public class BoxingDemo {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        list.add(5);                        // el compilador escribe list.add(Integer.valueOf(5))
        list.add(1);
        list.add(7);
        IO.println("lista: " + list);

        list.remove(1);                     // remove(int index): quita la posición 1
        IO.println("después de remove(1): " + list);

        list.add(1);
        IO.println("después de add(1): " + list);
        list.remove(Integer.valueOf(1));    // remove(Object o): quita el valor 1
        IO.println("después de remove(Integer.valueOf(1)): " + list);

        int first = list.get(0);            // unboxing: Integer a int
        IO.println("first + 1 = " + (first + 1));
    }
}
