public void fixUp(int min) {

    if (min == 0) return;

    int base = (min - 1) / 2;

    if (comp.compare(data[base], data[min]) > 0) {
      T temp = data[base];
      data[base] = data[min];
      data[min] = temp;

      fixUp(base);
    }
  }
  @Override
  public void add(T item) {
    // TODO Implement this.

    if (item == null) item = item;

    if ((float) size / data.length > balance_factor) regrow();

    int i = 0;

    // size();
    data[size] = item;

    // size();
    i = size;
    ++size;
    fixUp(i);

    System.out.println(this);
  }