Sự khác biệt giữa Bản đồ băm và ADT từ điển là gì. Và khi thích cái khác hơn. Đối với bài tập lập trình của tôi, người hướng dẫn của tôi đã yêu cầu sử dụng một trong số họ nhưng tôi không thấy có sự khác biệt nào giữa cả hai. Chương trình được cho là làm việc với một số không lớn. của chuỗi. Bất kỳ đề xuất?Sự khác biệt giữa HashMap và từ điển ADT
Trả lời
Về mặt Java, cả lớp HashMap
và lớp Dictionary
là triển khai loại dữ liệu trừu tượng "Bản đồ". Các kiểu dữ liệu trừu tượng không dành riêng cho bất kỳ một ngôn ngữ lập trình nào, và ADT Bản đồ cũng có thể được gọi là Hash, hoặc một từ điển, hoặc một mảng liên kết (những người khác tại http://en.wikipedia.org/wiki/Associative_array). (Chú ý chúng tôi đang thực hiện một sự phân biệt giữa lớp Dictionary
và từ điển ADT.)
Các Dictionary
lớp đã được đánh dấu là đã lỗi thời, vì vậy tốt nhất không sử dụng nó.
Trong Java, HashMap triển khai giao diện Bản đồ trong khi từ điển thì không. Điều đó làm cho từ điển lỗi thời (theo tài liệu API). Đó là, cả hai đều làm một chức năng tương tự như vậy bạn có quyền mà họ có vẻ rất giống nhau ... HashMap là một loại từ điển.
Bạn nên sử dụng HashMap.
stack này Overflow bài làm một công việc tốt giải thích sự khác biệt chính:
Lưu ý rằng Hashtable chỉ đơn giản là một thực hiện các điển ADT. Cũng lưu ý rằng Java xem xét từ điển "obsolete".
Thực tế là Hashtable được đồng bộ hóa không mua cho bạn nhiều nhất cho hầu hết các lần sử dụng. Sử dụng HashMap.
Cảm ơn bạn! Nó hữu ích! – trillions
Bản đồ là giao diện cho ADT trong Java, cấu trúc dữ liệu độc lập về ngôn ngữ chung để duy trì khóa <, giá trị > cặp và được giới thiệu trong Java 1.2.
Từ điển (không phải triển khai Bản đồ) là lớp Tóm tắt cho cùng một mục đích được giới thiệu trước đó trong JDK 1.0. Lớp con duy nhất mà nó có là Hashtable mà chính nó đang thực hiện Bản đồ. Tuy nhiên, lớp Từ điển đã lỗi thời và bạn có thể quên nó.
Có sự khác biệt giữa các thành viên chức năng của Bản đồ và từ điển, tuy nhiên bạn có thể thấy sự khác biệt giữa HashMap và Hashtable hữu ích hơn. here bạn có thể tìm thấy sự khác biệt.
- 1. Sự khác biệt giữa đối tượng và từ điển?
- 2. Sự khác biệt giữa Hashtable và Từ điển là gì?
- 3. Sự khác biệt giữa HashMap và Bản đồ trong Java ..?
- 4. Sự khác biệt giữa HashMap và TreeMap là gì?
- 5. tìm sự khác biệt giữa hai từ điển
- 6. Sự khác nhau giữa từ điển và mảng là gì?
- 7. Sự khác biệt giữa .Net Hashtable, Java Hashtable & HashMap
- 8. Sự khác biệt thực sự giữa từ điển và bảng băm là gì?
- 9. Sự khác biệt giữa $ * và $ @
- 10. Sự khác biệt giữa Tries và Trees?
- 11. Sự khác biệt giữa $ (...) và `...`
- 12. Sự khác biệt giữa. và #
- 13. Sự khác biệt giữa ". +" Và ". +?"
- 14. Sự khác biệt giữa "**/* /" và "** /"?
- 15. Sự khác biệt giữa = và: =
- 16. Sự khác nhau giữa Hashtable và Collections.synchronizedMap (HashMap)
- 17. Sự khác biệt giữa Microsoft.Jet.OleDb và Microsoft.Ace.OleDb
- 18. sự khác biệt giữa việc thêm và [] trong hoạt động từ điển
- 19. sự khác biệt giữa băm của perl và từ điển python
- 20. Sự khác biệt giữa bản đồ và dict
- 21. Sự khác biệt giữa các đối tượng HashMap và Map trong Java là gì?
- 22. Sự khác biệt giữa OperationCanceledException và TaskCanceledException?
- 23. Sự khác biệt giữa smtpClient.send() và smtpClient.SendAsync()?
- 24. sự khác biệt giữa HttpResponseException và HttpException
- 25. Sự khác biệt giữa _declspec và __declspec?
- 26. sự khác biệt giữa lex và yacc
- 27. Sự khác biệt giữa System.DateTime và System.DateTimeOffset
- 28. Sự khác biệt giữa UIViewController và UITableViewController
- 29. Sự khác biệt giữa SimpleDB và S3
- 30. Sự khác biệt giữa .Rprofile và .First
Lưu ý rằng có sự khác biệt giữa loại dữ liệu trừu tượng "Bản đồ" và giao diện Java của "Bản đồ". Như đã đề cập trong các câu trả lời khác, lớp 'Dictionary' kế thừa thực hiện _not_ thực hiện giao diện Java' Map', nhưng lớp 'HashMap' thực hiện. –