Есть ли идиома Java для парной итерации через элементы отсортированного Collection
? Под этим я подразумеваю, что каждая итерация имеет доступ к одному элементу коллекции и к следующему элементу коллекции?
Для отсортированных List
(и массивов) это можно сделать, используя индекс в коллекции:
final int n = list.size();
assert 2 <= n;
for (int i = 0; i < n - 1; ++i) {
final Thing thing1 = list.get(i);
final Thing thing2 = list.get(i+1);
operateOnAdjacentPair(thing1, thing2);
}
Но как насчет SortedSet
? (для SortedMap
вы можете использовать его entrySet()
, что эквивалентно случаю SortedSet
).
Итак, например, если ваш отсортированный набор содержал значения {1, 2, 3, 4}, итерации были бы для пар (1, 2), (2, 3), (3, 4), в этом порядке.