Giả sử tôi có một đối tượng List
và một trình lặp số cho danh sách đó.Khi tôi sắp xếp một Danh sách những gì xảy ra với các trình lặp của nó?
Bây giờ tôi sắp xếp danh sách với java.util.Collections.sort()
- gì xảy ra với iterator?
- Hành vi của nó vẫn được xác định và nó vẫn có thể được sử dụng?
- Nếu không, tôi có thể ngăn việc hủy các trình vòng lặp cho danh sách không?
Tôi biết, vấn đề này có thể bị phá vỡ bằng cách thay đổi thiết kế chương trình, nhân bản danh sách ví dụ, nhưng tôi đặc biệt muốn biết hành vi "chính thức" của Java.
Câu trả lời rõ ràng cho một trình lặp đơn 'p' trỏ vào bộ sưu tập' c'. Điều gì về việc có hai vòng lặp 'p' và' q' trỏ vào cùng một bộ sưu tập 'c' và được lặp lại độc lập? Liệu _ "ngoại trừ thông qua bản thân trình lặp" _ có nghĩa là cá thể cụ thể của trình lặp như 'p' hay nó có nghĩa là bất kỳ cá thể nào của trình lặp? Tôi đoán việc lặp lại độc lập 'p' và' q' sẽ làm mất hiệu lực lẫn nhau (đơn giản vì không có trình lặp nào biết về các trình vòng lặp khác cũng như bộ nhớ nhớ tất cả các trình vòng lặp của nó), nhưng tốt nhất là làm rõ nó ở đây. Cảm ơn! – uvsmtid
@uvsmtid: Ngoại trừ thông qua trình lặp cụ thể đó. Nếu bạn có hai trình vòng lặp trên cùng một bộ sưu tập, thì bạn không thể sửa đổi bộ sưu tập qua một trong hai bộ sưu tập đó, trừ khi đó là bộ sưu tập hỗ trợ rõ ràng đồng thời sửa đổi. –