KHUYẾN CÁO:
Câu hỏi này không có ý nghĩa tranh cãi!Cách nhanh nhất và hiệu quả nhất để tìm kiếm cặp khóa-giá trị trong Java?
Cách thoát nước nhanh nhất và ít bộ nhớ nhất để tìm kiếm cặp khóa-giá trị là gì? Tôi sẽ lưu trữ các mục trong một khóa-giá trị như quan hệ và tôi cần truy cập chúng một cách nhanh chóng. Tôi có nên sử dụng cơ sở dữ liệu SQLite không? Bản đồ? Một Hashtable? Một HashMap? Vui lòng đưa ra một số ưu điểm/nhược điểm khi sử dụng bất kỳ phương pháp tìm kiếm nào.
HashTable KHÔNG được đồng bộ hóa và nhanh hơn ConcurrentHashMap trong môi trường đơn luồng trong khi nó không có bất kỳ khóa nào! Nếu quyền truy cập vào bản đồ đa luồng ConcurrentHashMap thực sự là giải pháp tốt nhất. –
@Tobias, "Không giống như triển khai bộ sưu tập mới, Hashtable được đồng bộ hóa" - từ http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html –
Vì chúng ta đang nói về ngữ nghĩa ... "Việc triển khai ConcurrentHashMap' thực hiện tốt hơn' HashMap' trong hầu hết các tình huống. Nó cũng cho phép đọc đồng thời và ghi đồng thời, và nó có các phương thức hỗ trợ các hoạt động tổng hợp chung mà không phải là luồng an toàn. môi trường triển khai, bắt đầu bằng 'ConcurrentHashMap'." * Clean Code - Cẩm nang về nghề thủ công phần mềm nhanh nhẹn, Robert C. Martin, tr.183 * – Esko