docs: public int fetchKeys(int tableIndex, int size, List<K> keys) {
          final long now = Clock.currentTimeMillis();
          final Segment<K, V> segment = segments[0];
          final HashEntry<K, V>[] currentTable = segment.table;
          int nextTableIndex;
          if (tableIndex >= 0 && tableIndex < segment.table.length) {
              nextTableIndex = tableIndex;
          } else {
              nextTableIndex = currentTable.length - 1;
          }
          int counter = 0;
          while (nextTableIndex >= 0 && counter < size) {
              HashEntry<K, V> nextEntry = currentTable[nextTableIndex--];
              while (nextEntry != null) {
                  if (nextEntry.key() != null) {
                      final V value = nextEntry.value();
                      if (isValidForFetching(value, now)) {
                          keys.add(nextEntry.key());
                          counter++;
                      }
                  }
                  nextEntry = nextEntry.next;
              }
          }
          return nextTableIndex;
      }