code: @Override
      public int next(int n) {
          int result = current();
          while (n > 0) {
              result = next();
              --n;
          }
          while (n < 0) {
              result = previous();
              ++n;
          }
          return result;
      }
docs: Advances the iterator either forward or backward the specified number of steps.
  Negative values move backward, and positive values move forward.  This is
  equivalent to repeatedly calling next() or previous().
  @param n The number of steps to move.  The sign indicates the direction
  (negative is backwards, and positive is forwards).
  @return The character offset of the boundary position n boundaries away from
  the current one.