Tại sao Java quyết định cho phép 'null' làm khóa trong HashMap? Như chúng ta biết hashcode() không thể được tính toán trên giá trị null. Có bất kỳ xem xét thiết kế cho quyết định này để cho phép null khóa trong HashMap mà không có trong Hashtable (Khác hơn là xem xét như là một giá trị mặc định)?Java - Lý do cho phép null là một khóa HashMap?
5
A
Trả lời
6
Từ JDK 1.2 Java Collections API Change Summary (không chắc chắn nơi để tìm phiên bản chính thức trên trang web của Oracle):
Added null-then chốt hỗ trợ cho HashMap. Điều này đã được thực hiện cho sự nhất quán với Bản đồ cây và Bản đồ Array không muộn, không có chủ ý và vì khách hàng đã yêu cầu. Bây giờ tất cả các mục đích chung của chúng tôi là triển khai chấp nhận các khóa, giá trị và các phần tử rỗng.
Joshua Bloch and Doug Lea disagreed on this và điều này gây ra sự cố cho concurrent hash maps.
Các vấn đề liên quan
- 1. Hashcode cho khóa NULL trong HashMap
- 2. Lợi ích của việc cho phép nhiều khóa null trong hashmap là gì?
- 3. Chuỗi là khóa trong hashmap
- 4. Cho phép null bằng khóa ngoài cho người dùng. Django
- 5. lý do tại sao null == undefined là đúng trong javascript
- 6. Java - lấy chỉ mục khóa trong HashMap?
- 7. Nhận chìa khóa từ HashMap trong Java
- 8. Tại sao JSON chỉ cho phép chuỗi là khóa?
- 9. Lý do cho var $ this = này là
- 10. Lý do cơ bản trong việc cho phép `?` Được thoát là gì?
- 11. java hashmap key iteration
- 12. Lý do cho phương thức size() của BitSet là gì?
- 13. Làm thế nào tôi có thể không cho phép cột để cho phép null và cho phép Null cột để không cho phép null
- 14. Đặt lớp của riêng làm khóa trong java Hashmap
- 15. Lưu trữ và truy xuất giá trị khóa Java HashMap
- 16. HashMap được trả về NULL
- 17. Có phải là một chuỗi an toàn HashMap cho các khóa khác nhau không?
- 18. lý do đằng sau khóa bên trong khóa?
- 19. Lý do cho mẫu gọi lệnh JavaScript này là gì?
- 20. Tại sao HashMap lại phục hồi mã băm do đối tượng khóa cung cấp?
- 21. Mã hóa khóa null là gì?
- 22. Tìm kiếm giá trị cho một khóa đã cho trong HashMap
- 23. Lý do ban đầu cho ToString() trong Java và .NET là gì?
- 24. Kiểm tra tồn tại khóa trong HashMap
- 25. Return Giá trị đặt() trong HashMap: Java
- 26. Sắp xếp một HashMap dựa trên Giá trị rồi Khóa?
- 27. Thay đổi một cột để không cho phép null
- 28. Làm thế nào để làm cho java HashMap hoạt động đúng với loại khóa tùy chỉnh?
- 29. Lý do cho lỗi Valgrind này là gì?
- 30. Lý do cho ClassNotFoundException là ngoại lệ được kiểm tra