class ArraySequence extends AbstractSequence<Object> {
  private final Object a;
  private final int len;



  @Override
  public int hintSize() {
    return this.len;
  }



  @Override
  public Collector newCollector(final int size) {
    if (size <= 0) {
      return new ListCollector(true);
    } else {
      return new ArrayCollector(size);
    }
  }



  public ArraySequence(final Object a) {
    super();
    this.a = a;
    this.len = ArrayUtils.getLength(a);
  }



  @Override
  public Iterator<Object> iterator() {<FILL_FUNCTION_BODY>}

}

    return new Iterator<Object>() {
      int i = 0;

      @Override
      public boolean hasNext() {
        return this.i < ArraySequence.this.len;
      }

      @Override
      public Object next() {
        return ArrayUtils.get(ArraySequence.this.a, this.i++);
      }

      @Override
      public void remove() {
        throw new UnsupportedOperationException();
      }

    };
  
<methods>public non-sealed void <init>() ,public java.lang.String toString() <variables>