tức là, Thiết lập của Ruby có tương đương với LinkedHashSet của Java không?Thiết lập trong Ruby có luôn bảo toàn thứ tự chèn không?
8
A
Trả lời
10
Trong Ruby 1.9: có. Trong Ruby 1.8: có thể không phải là.
Set
uses a Hash
internally; và kể từ khi băm được chèn vào trong 1,9, bạn nên đi!
Khi mu is too short chỉ ra, đây là chi tiết triển khai và có thể thay đổi trong tương lai (mặc dù không có khả năng). Rất may, việc triển khai hiện tại Set
là ruby tinh khiết và có thể được điều chỉnh thành OrderedSet
trong tương lai nếu bạn thích
Sắp xếp. [Tài liệu] (http://ruby-doc.org/stdlib-1.9.3/libdoc/set/rdoc/Set.html) nói "Thiết lập thực hiện một tập hợp các giá trị không có thứ tự mà không có bản sao". Việc sử dụng Hash bên trong là một chi tiết triển khai có thể thay đổi bất cứ lúc nào và "trật tự" không được đảm bảo bởi thông số giao diện. OTOH, nó cũng nói rằng "Set sử dụng Hash là lưu trữ." vì thế... –