public void union(Range r){ for(int i = 0; i < rangeSet.size(); i++){ if(!rangeSet.get(i).overlaps(r)){ rangeSet.add(r); } else if(rangeSet.get(i).overlaps(r)){ for(int j = i+1; j < rangeSet.size(); j++){ if(rangeSet.get(j).overlaps(r)){ rangeSet.set(i,(Math.min(rangeSet.get(i).getMinimum(),rangeSet.get(j).getMinimum()),(Math.max(rangeSet.get(i).getMaximum(),rangeSet.get(j).getMaximum()))); rangeSet.remove(j); return; } } rangeSet.set(i,(Math.min(r.getMinimum(),rangeSet.get(i).getMinimum()),(Math.max(r.getMaximum(),rangeSet.get(i).getMaximum()))); } if(r.contains(rangeSet.get(i))){ rangeSet.remove(i); } } }