Tôi đang tìm cách giải quyết vấn đề sau:
Bắt đầu với bộ sưu tập A, tôi muốn chuyển một số loại 'xem' trên bộ sưu tập đó (nói bộ sưu tập B) sang một phương pháp nhất định. Khung nhìn B không cần chứa tất cả các phần tử của bộ sưu tập gốc A. Nếu trong đối tượng phương thức này được thêm vào hoặc bị loại bỏ khỏi khung nhìn (bộ sưu tập B), những thay đổi này cũng phải được phản ánh trên bộ sưu tập gốc A.Chế độ xem có thể sửa đổi Java trên bộ sưu tập
Ví dụ (pseudo-code): tình hình
bắt đầu:
Collection A = {1, 2, 3}; View-on-collection B = {1, 2};
Cách gọi:
someMethod(B) { B.add(4); B.remove(2); }
End tình hình:
Collection A = {1, 3, 4};
Có ai biết giải pháp gọn gàng cho vấn đề này không?
gì nếu bạn làm 'B.remove (3);' cho '3' là chỉ trong A? –
Tôi đã nói 'subList', nhưng điều đó không hoàn toàn làm những gì bạn muốn (xem có vẻ như không bao giờ thay đổi kích thước, ngay cả khi bạn thêm những thứ vào nó). –
@JoachimSauer: Chế độ xem có thể thay đổi kích thước bằng 'subList()'. – Keppil