code: List<T> subList(long from, long to) {
          if (fullListSize > 0 && to - from > 0) {
              checkRange(from);
              // subList takes a [from;to[ range
              checkRange(to - 1);
  
              // check if the data of the required sub list are available
              assertSubRange(from, to - 1);
  
              // cannot exceed Integer.MAX_VALUE (checked by checkSubRange)
              return subList.subList((int) (from - subListOffset), (int) (to - subListOffset));
          }
  
          return new ArrayList<>();
      }
docs: Returns a portion of this list between the specified from, inclusive, and to, exclusive.
  
  @param from low endpoint (inclusive) of the subList
  @param to   high endpoint (exclusive) of the subList
  @return the sub list of item