if (a.hasNext()) return true;
if (a.hasNext()) { return true; }
  public boolean hasNext() {    if (a.hasNext()) return true;    else if (b != null) {      a = b;      b = null;      return this.hasNext();    }    else {      return false;    }  }