code: public void minus(Range range) {
  		List<Range> newList = new ArrayList<>();
  		Range target = range;
  		for (Iterator<Range> iterator = this.ranges.iterator(); iterator.hasNext();) {
  			Range r = iterator.next();
  			if (r.equals(target)) {
  				iterator.remove();
  			} else if (target.include(r)) {
  				iterator.remove();
  			} else if (r.include(target)) {
  				if (r.getStart() < target.getStart()) {
  					newList.add(new Range(r.getStart(), target.getStart() - 1));
  				}
  				if (r.getEnd() > target.getEnd()) {
  					newList.add(new Range(target.getEnd() + 1, r.getEnd()));
  				}
  				iterator.remove();
  			} else if (r.hasIntersection(target)) {
  				if (r.include(target.getStart())) {
  					newList.add(new Range(r.getStart(), target.getStart() - 1));
  				} else {
  					newList.add(new Range(target.getEnd() + 1, r.getEnd()));
  				}
  				iterator.remove();
  			}
  		}
  		ranges.addAll(newList);
  	}
docs: MINUS
  
  @param range Range