Câu hỏi phỏng vấn Java
Câu hỏi

Sự khác biệt giữa HashMap và...

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...
senior

senior

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

middle

Lợi ích của việc sử dụng getterssetters trong Java là gì?

senior

Trong Java, làm sao để bạn đảm bảo N thread có thể truy cập N tài nguyên mà không bị deadlock?

middle

Sự khác biệt giữa ArrayListLinkedList 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