private ElementSection<E> getElementSection(int index) { // short-cut the normal case if (index < SIZE) { return elements; } // if we have passed the first array we get more complicated and do recursive chaining int numSections = index / SIZE; ElementSection<E> a = elements; for (int i = 0; i < numSections; i++) { a = a.getNext(); } return a; }