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

Giải thích các cách khác nhau để tạo một thread trong Java. Bạn thích cách nào và tại sao?

middle

Làm cách nào để thoát khỏi các vòng lặp lồng nhau trong Java?

senior

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