E (int index) { if (index < 0 || index >= mySize) { throw new IndexOutOfBoundsException("index = " + index + ", size = " + mySize); } FList<E> current = this; while (index > 0) { current = current.myTail; index--; } return current.myHead; }