code: private void moveElements(int i)
      {
          if (i >= size)
              return;
  
          System.arraycopy(starts, i, starts, i+1, size - i);
          System.arraycopy(ends, i, ends, i+1, size - i);
          System.arraycopy(markedAts, i, markedAts, i+1, size - i);
          System.arraycopy(delTimes, i, delTimes, i+1, size - i);
          // we set starts[i] to null to indicate the position is now empty, so that we update boundaryHeapSize
          // when we set it
          starts[i] = null;
      }
docs: /*
  Move elements so that index i is "free", assuming the arrays have at least one free slot at the end.