package arraylist; import iterator.IndexListIterator; import java.util.Iterator; /** * Created with xgiovio.macbookair. * User: xgiovio * Date: 24/03/14 * Time: 14:31 */ //Copyright (c) 2003 Brown University, Providence, RI //Additional modifications and methods by xgiovio public class ArrayIndexList implements IndexList { private E[] array; private int capacity = 100; private int size = 0; public ArrayIndexList() { array = (E[]) new Object[capacity]; } public ArrayIndexList(int in_size) { array = (E[]) new Object[in_size]; capacity = in_size; } public int size() { return size; } public boolean isEmpty() { return size() == 0; } public E get(int r) throws IndexOutOfBoundsException { checkIndex(r, size()); return array[r]; } public E set(int r, E e) throws IndexOutOfBoundsException { checkIndex(r, size()); E temp = array[r]; array[r] = e; return temp; } public void add(int r, E e) throws IndexOutOfBoundsException { checkIndex(r, size() + 1); if (size == capacity) { capacity *= 2; E[] B =(E[]) new Object[capacity]; for (int i=0; i=r; i--) array[i+1] = array[i]; array[r] = e; size++; } public E remove(int r) throws IndexOutOfBoundsException { checkIndex(r, size()); E temp = array[r]; for (int i=r; i= n) throw new IndexOutOfBoundsException("Illegal index: " + r); } @Override public String toString() { String to_return = ""; to_return = to_return + "["; for ( int i = 0; i< size() ; i++){ if ( i== size() -1){ to_return+=(get(i).toString()); }else{ to_return+=(get(i).toString() + ","); } } to_return = to_return + "]"; return to_return; } @Override ///////////////// implemented used a generic IndexListIterator public Iterator iterator() { E[] temp = (E[])new Object[this.size()]; for (int i = 0 ;i < this.size(); i++){ temp[i] = this.get(i); } return new IndexListIterator(temp); } }