Câu hỏi

Sự khác biệt giữa HashMapHashtable trong Java là gì?

Câu trả lời

HashMapHashtable trong Java đều là cấu trúc dữ liệu dựa trên bảng băm, được sử dụng để lưu trữ dữ liệu dưới dạng cặp key-value. Tuy nhiên, giữa chúng có một số sự khác biệt quan trọng:

1. Null Keys và Null Values

  • HashMap cho phép một key là null và nhiều giá trị null
  • Hashtable không cho phép bất kỳ key hoặc giá trị null nào

2. Đồng bộ hóa

  • HashMap không đồng bộ, nghĩa là nó không thread-safe khi được sử dụng trong môi trường đa luồng mà không có biện pháp đồng bộ hóa bên ngoài
  • Hashtable là đồng bộ, tức là nó thread-safe do có cơ chế đồng bộ hóa nội bộ. Tuy nhiên, điều này làm cho Hashtable chậm hơn so với HashMap

3. Hiệu suất

  • HashMap nhanh hơn Hashtable do không phải chịu chi phí của việc đồng bộ hóa
  • Hashtable chậm hơn do cơ chế đồng bộ hóa nội bộ

4. Duyệt

  • HashMap được duyệt bởi Iterator, và Iterator trong HashMap là fail-fast, tức là nếu có sự thay đổi cấu trúc HashMap trong quá trìn...
Bạn cần đăng nhập để xem
senior

senior

Gợi ý câu hỏi phỏng vấn

middle

Tại sao trong Java có các trường transient?

senior

Sự khác biệt giữa Serial garbage collectorThroughput garbage collector trong Java là gì?

middle

Sự khác biệt giữa processesthreads trong Java là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào