Iterating over a range of integer ranges in Java
I think RangeCollection would be a better name than Ranges.

To my mind, the RangeIterator is doing too much.  It's iterating over a collection of ranges and over each range in the collection.  To me it would make more sense for the Range class to have its own iterator and the RangeCollection its own iterator