public class OverlapIterator<I extends java.lang.Comparable<? super I>,V>
extends java.lang.Object
A class for iterating sequentially through an ordered collection and efficiently
 finding the overlapping set of matching intervals.
 The algorithm is quite simple: the intervals are sorted ascending by both min and max
 in two separate lists. These lists are walked forwards each time we visit a new point,
 with the set of intervals in the min-ordered list being added to our set of overlaps,
 and those in the max-ordered list being removed.