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

senior

Việc thu gom rác có diễn ra trong PermGen space trong JVM không?

middle

Có những cách nào để tạo một Thread trong Java. Bạn thích cách nào và tại sao?

middle

Trong Java lớp exception có các lớp con nào?

Bình luận

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

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