Есть ли идиома 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), в этом порядке.