Câu hỏi của tôi là nhu cầu của HashSet<T>
khi chúng tôi có SortedSet<T>
! Tất cả các phương thức của HashSet cũng có sẵn trong SortedSet, hơn nữa SortedSet là thuận lợi vì nó cung cấp bộ sưu tập đã được sắp xếp theo cách sắp xếp! Ngay cả sau đó HashSet là hiện tại. Vậy thì nó có ích gì?SortedSet <T> vs HashSet <T>
Trả lời
Nếu bạn không cần phân loại, bạn không nên sử dụng một lớp phân loại vì điều đó có nghĩa là ứng dụng của bạn sẽ làm việc nhiều hơn mức cần thiết. (Nó sẽ làm cho ứng dụng của bạn nhanh hơn, nói cách khác).
Quan trọng hơn, thuật toán sẽ chạy nhanh hơn. Hashing là O (1), trong khi tập hợp được sắp xếp có khả năng sử dụng cây tìm kiếm nhị phân, là O (log n) trong trường hợp trung bình - hiệu suất kém hơn nhiều. –
Trong trường hợp đó chúng ta có thể sử dụng Danh sách
Đặt cho các mục duy nhất, Danh sách có thể chứa các mục trùng lặp. http://msdn.microsoft.com/en-us/library/bb359438.aspx cho tài liệu HashSet
Đây là cách chọn đúng công cụ cho công việc. Phụ thuộc vào cách bạn sẽ sử dụng bộ sưu tập của mình.
This page có bảng đẹp chi tiết sự khác biệt giữa các lớp thu thập khác nhau.
Dưới đây là một đoạn trích từ bảng mà liên quan đến các bộ sưu tập bạn đang yêu cầu về:
Collection Ordering Contiguous Storage? Direct Access? Lookup Efficiency Manipulate Efficiency SortedSet Sorted No Via Key Key:O(log n) O(log n) HashSet Unordered Yes Via Key Key:O(1) O(1)
- 1. Có thể .NET 4 ISet <> HashSet <> thay thế NHibernate Iesi.Collections ISet, HashSet?
- 2. <?> vs <T>
- 3. <applet> vs <object>
- 4. ObservableCollection <> vs. List <>
- 5. <cstdint> vs <stdint.h>
- 6. IEnumerable <T> VS IList <T> VS IQueryable <T>
- 7. XSD Formatting <element><complexType> vs <complexType /><element/>
- 8. Tại sao HashSet <T> không triển khai IReadOnlyCollection <T>?
- 9. Sự khác nhau giữa HashSet <T> và Danh sách <T> là gì?
- 10. C# HashSet <T> hiệu suất tìm kiếm (so với ObservableCollection <T>)?
- 11. Type.GetType(), HashSet <T> và hội Qualification
- 12. Chuyển đổi mảng thành HashSet <T> trong .NET
- 13. Is Enumerable.ElementAt <TSource> O (1) cho HashSet?
- 14. Tại sao là HashSet <T> .IsReadOnly rõ ràng?
- 15. nội System.Linq.Set <T> vs System.Collections.Generic.HashSet công <T>
- 16. ArrayList <> vs ArrayList <Integer>
- 17. document.write ('<scr' + 'ipt src = vs <script src =
- 18. Lỗi: <span> vs <label>
- 19. $ ('<element> ') vs $ (' <element />') trong jQuery
- 20. @OneToMany List <> vs Set <> khác biệt
- 21. Hashset vs IQueryable
- 22. HashSet vs. ArrayList
- 23. "<>" vs "NOT IN"
- 24. cat file | ... vs ... <file
- 25. GIT tập tin bị hỏng (<<<<<<<< HEAD)
- 26. Độ phức tạp thời gian tra cứu của HashSet <T> (IEqualityComparer <T>) là gì?
- 27. StringDictionary vs Dictionary <string, string>
- 28. Activator.CreateInstance <T> Vs mới
- 29. ArrayList vs Danh sách <object>
- 30. java.util.Properties Vs java.util.Map <String, String>
gì nếu bạn có một tập hợp những điều mà không có một cái giếng đặt hàng ở nơi đầu tiên? Làm thế nào bạn sẽ làm cho một * sắp xếp * tập hợp các điểm trong ba không gian, ví dụ? Bạn sẽ sắp xếp thứ gì? –
trên Tuple.Create (x, y, z) :) – Grozz
HashSet nếu bạn muốn các mục được phân loại và duy nhất? Từ MSDN> Lớp HashSet cung cấp > các hoạt động thiết lập hiệu suất cao. Tập hợp > là bộ sưu tập không chứa > các thành phần trùng lặp và có các thành phần > không theo thứ tự cụ thể. http://msdn.microsoft.com/en-us/library/bb359438.aspx –
OnesimusUnbound