7
Tôi có một chút mới đối với Cocoa và tôi đã đọc khoảng NSIndexSet
. Tại sao nó lại cần thiết? Dường như với tôi rằng NSIndexSet
không là gì ngoài một số nguyên là NSSet
, đúng không? Mục đích của việc tạo ra một bộ sưu tập riêng biệt là gì?Sự khác nhau giữa NSIndexSet và NSSet là gì?
Để xây dựng trên # 2, NSIndexSet cho phép bạn lặp qua các chỉ mục theo thứ tự hoặc theo thứ tự ngược lại. Một NSSet là không có thứ tự, và một NSOrderedSet được sắp xếp theo cách thủ công (có nghĩa là bạn có thể phá vỡ thứ tự bằng cách chèn một đối tượng ở vị trí sai). –
OK. Một điều khác tôi vừa để ý. NSIndexSet thực sự sử dụng NSRange để lưu trữ các chỉ mục liên tiếp, thực sự rất được tối ưu hóa để lưu trữ giá trị chỉ mục vào các bộ sưu tập khác. – Tony
Hoạt động trên 'NSSet' là O (1) (băm), trong khi hầu hết các hoạt động' NSIndexSet' là O (N) (vòng lặp). –