Вариант 1: использовать Array
. Это очень просто.
int[] arr = { 1, 5, 6, 9, 10, 14, 15, 18 };
for (int i = 0; i < arr.length; i += 2) {
int start = arr[i];
int end = arr[i + 1];
// payload
}
Вариант 2: использовать TreeSet
с пользовательским компаратором. Немного сложнее, но код более понятен.
Set<Pair<Integer, Integer>> ranges = new TreeSet<>(Comparator.comparingInt((ToIntFunction<Pair<Integer, Integer>>)Pair::getKey).thenComparingInt(Pair::getValue));
ranges.add(new Pair<>(1, 5));
ranges.add(new Pair<>(6, 9));
ranges.add(new Pair<>(10, 14));
ranges.add(new Pair<>(15, 18));
for (Pair<Integer, Integer> range : ranges) {
int start = range.getKey();
int end = range.getValue();
// payload
}