2012-11-10 32 views
7

thể trùng lặp:
Differences between HashMap and Hashtable?thế nào là Hashtable khác nhau để HashMap

Tôi đã nhìn thấy bảng băm và bản đồ băm được sử dụng trong đoạn mã khác nhau nhưng họ trông giống như họ làm điều tương tự. Có sự khác biệt nào giữa chúng không? Tôi nên sử dụng mã nào trong mã của mình?

+0

Đúng, sự khác biệt chính là Hashtable được đồng bộ hóa và HashMap thì không. Họ cũng có các cấu trúc phân cấp siêu lớp khác nhau. (FWIW, tôi đã gặp một vài trường hợp thất bại khá nghiêm trọng trong các ứng dụng thương mại lớn do sử dụng HashMap trong một môi trường đồng thời.) –

+0

BTW, đó là "HashMap" và "Hashtable". Lưu ý cách viết hoa. –

+1

Bạn có cân nhắc việc đọc Javadoc không? – EJP

Trả lời

5

java.util.Hashtable phương pháp được đồng bộ, java.util.HashMap phương pháp này không. Nếu bạn sử dụng Hashtable sẽ có một hiệu suất nhấn vì không hai luồng sẽ có thể truy cập các phương thức của nó cùng một lúc. Nếu bạn quan tâm đến An toàn chủ đề trong ứng dụng Hashtable là cách thực hiện. nếu bạn không quan tâm về an toàn chủ đề Hashmap là cách để đi vì nó là hiệu quả mor sau đó hashtable. cũng java.util.Hashtable không cho phép bất kỳ khóa rỗng nào, ở đâu như java.util.HashMap cho phép một khóa rỗng.

4

Hashtable được đồng bộ hóa, trong đó HashMap không được. Điều này có nghĩa là nếu bạn chỉ có một chuỗi truy cập dữ liệu, hãy sử dụng HashMap, nếu không thì hãy sử dụng một Hashtable.

+0

của nó Hashtable, lưu ý 't' :) – PermGenError

+0

@GanGnaMStYleOverFlowErroR wow, không bao giờ nhận thấy, haha ​​=) –

0

HashTable không cho phép khóa rỗng trong khi hashmap cho phép một khóa rỗng

Các vấn đề liên quan