Có thành ngữ Java cho phép lặp theo cặp đôi thông qua các phần tử của một sắp xếp Collection
không? Theo đó tôi có nghĩa là mỗi lần lặp lại có quyền truy cập vào một phần tử của bộ sưu tập và phần tử tiếp theo của bộ sưu tập?Thành ngữ cho phép lặp lại theo cặp thông qua bộ sưu tập được sắp xếp
Đối với sắp xếp List
s (và mảng), nó có thể được thực hiện bằng một chỉ số vào bộ sưu tập:
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);
}
Nhưng những gì về SortedSet
? (đối với SortedMap
bạn có thể sử dụng số entrySet()
, tương đương với trường hợp SortedSet
).
Vì vậy, ví dụ, nếu thiết lập được sắp xếp của bạn chứa các giá trị {1, 2, 3, 4}, sự lặp đi lặp lại sẽ là cho các cặp (1, 2), (2, 3), (3 , 4), theo thứ tự đó.
Tôi tin rằng đề xuất của bạn chỉ lặp lại một nửa số cặp vì mỗi lần lặp lại được tiến hành bởi 2 phần tử. – Raedwald
@Raedwald Điều này là bước qua (1,2) (3,4) ... giống như bạn đã chỉ ra trong câu hỏi. – allprog
Không, hãy xem ví dụ tôi đã cung cấp cho 'Danh sách'. – Raedwald