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

Sự khác biệt giữa ArrayArrayList là gì? Khi nào bạn sẽ sử dụng Array thay vì ArrayList?

junior

Liệt kê các bước để tạo một đối tượng (object) cho một lớp (class) trong Java?

middle

Lớp singleton 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