Czy istnieje idiom Java dla parowania iteracyjnego przez elementy sortowanego Collection
? Rozumiem przez to, że każda iteracja ma dostęp do jednego elementu kolekcji i następnego elementu kolekcji?Idiom dla iteracji parami poprzez sortowaną kolekcję
Dla posortowanych List
s (i tablic), można to zrobić za pomocą indeksu w kolekcji:
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);
}
ale co SortedSet
? (dla SortedMap
można użyć jego entrySet()
, co jest odpowiednikiem przypadku SortedSet
).
Tak więc, na przykład, jeśli sortowane zestaw zawierał wartości {1, 2, 3, 4} iteracje byłoby pary (1, 2), (2, 3), (3 , 4), w tej kolejności.
Wierzę, że twoja sugestia iteruje tylko przez połowę par, ponieważ każda iteracja rozwija się o 2 elementy. – Raedwald
@Raedwald Ten przejdzie (1,2) (3,4) ... tak jak wskazałeś w pytaniu. – allprog
Nie, spójrz na przykład, który dałem dla 'List'. – Raedwald