class SimpleArrayList<E> {
  private E[] elements;
  private int size;

  public SimpleArrayList(int initialCapacity) {
    if (initialCapacity < 0)
      throw new IllegalArgumentException("Illegal Capacity: " + initialCapacity);
    this.elements = (E[]) new Object[initialCapacity];
    size = 0;
  }

  void rialloca() {
    E[] nuovo = (E[]) new Object[elements.length*2];
    for(int i = 0; i < elements.length; i++) {
      nuovo[i] = elements[i];
    }
    elements = nuovo;
  }

  public int size() {
    return size;
  }

  public void add(E x) {
    if(size == elements.length) rialloca();
    elements[size] = x;
    size++;
  }

  public void writeln() {
    for(int i = 0; i < size; i++) {
      System.out.println(elements[i]);
    }
  }
}

class Prova {
  public static void main(String[] args) {
    SimpleArrayList<String> a = new SimpleArrayList<String>(3);
    a.add("Pluto");
    a.add("Pippo");
    a.add("Qui");
    a.add("Quo");
    a.add("Qua");
    a.writeln();
  }
}