code: public ImmutableIntArray subArray(int startIndex, int endIndex) {
      Preconditions.checkPositionIndexes(startIndex, endIndex, length());
      return startIndex == endIndex
          ? EMPTY
          : new ImmutableIntArray(array, start + startIndex, start + endIndex);
    }
docs: Returns a new immutable array containing the values in the specified range.
  
  <p><b>Performance note:</b> The returned array has the same full memory footprint as this one
  does (no actual copying is performed). To reduce memory usage, use {@code subArray(start,
  end).trimmed()}.