Java HashMap và Hashtable: Sự khác biệt là gì?



Bài viết này về Java HashMap vs Hashtable sẽ cung cấp cho bạn một số thông tin sơ lược về Java HashMap và Hashtable cũng như sự khác biệt chính giữa hai loại này

Ở cấp độ đầu vào, một trong những câu hỏi thường gặp nhất là về Java HashMap và Hashtable. Vì vậy, bạn phải chuẩn bị đầy đủ để trả lời bất cứ điều gì liên quan đến Bản đồ băm hoặc Hashtable. Java sử dụng HashMap và Hashtable để lưu trữ dữ liệu dưới dạng Chìa khóagiá trị . Vì vậy, bài viết này sẽ giúp bạn biết sự khác biệt chính giữa hai loại này.

Tôi sẽ thảo luận các chủ đề theo thứ tự sau:





Hãy bắt đầu nào!

HashMap là gì?

Bản đồ băm là một lớp thu thập dựa trên Bản đồ trong được sử dụng để lưu trữ dữ liệu theo cặp Khóa và Giá trị. Nó giúp thực hiện giao diện Bản đồ trong Java. Về cơ bản nó là một phần của kể từ phiên bản Java 1.2 và cung cấp cách triển khai cơ bản của giao diện Bản đồ trong Java. Để truy cập một giá trị trong HashMap, người ta phải biết Chìa khóa .



Nó được gọi là HashMap vì nó sử dụng một kỹ thuật được gọi là Băm . Hashing là một quá trình chuyển đổi một lượng lớn thành một nhỏ hơn bằng cách giữ giá trị của Chuỗi là không đổi. Giá trị nén kết quả giúp lập chỉ mục và tìm kiếm nhanh hơn.

đọc và ghi tệp excel trong java

HashMap trong Java-JavaHashMap so với Hashtable-Edureka

Hashtable là gì?

Hashtable là một cấu trúc dữ liệu được sử dụng để lưu trữ các cặp khóa / giá trị. Trong Hashtable, dữ liệu được lưu trữ ở định dạng mảng, trong đó mỗi giá trị dữ liệu có giá trị chỉ mục duy nhất của riêng nó. Bạn có thể truy cập dữ liệu thực sự nhanh nếu bạn biết chỉ mục của dữ liệu mong muốn.



Lớp Hashtable của Java thực hiện một bảng băm, ánh xạ các khóa đến các giá trị. Nó kế thừa lớp Từ điển và thực hiện giao diện Bản đồ.

Khai báo bảng băm

lớp công khai Hashtable mở rộng Từ điển triển khai Bản đồ, Có thể sao chép, Có thể nối tiếp

ĐẾN: Đây là loại chìa khóa của bản đồ.
V: Đây là loại giá trị được ánh xạ.

Bây giờ các bạn đã hiểu HashMap và Hashtable trong Java hoạt động như thế nào, hãy cùng xem các tham số để hiểu sự khác biệt giữa HashMap và Hashtable.

Bây giờ chúng ta hãy chỉ ra những điểm khác biệt chính giữa HashMap và Hashtable.

Java HashMap so với Hashtable

Thông số Bản đồ băm Hashtable

Đồng bộ hóa

Không đồng bộ có nghĩa là nó không an toàn cho luồng và không thể được chia sẻ giữa nhiều luồng mà không có mã đồng bộ thích hợp.Được đồng bộ hóa và có thể được chia sẻ với nhiều chủ đề

Phím rỗng

Chỉ cho phép một khóa null và nhiều giá trị nullKhông cho phép khóa null hoặc giá trị của nó

Hệ thống kế thừa

Đây là một phần của Bộ sưu tập JavaHashtable là một lớp kế thừa không phải là một phần của phần đầu

Trình lặp lại

Trình lặp lại không nhanh và nó ném ra một concurrentModificationException nếu bất kỳ luồng nào khác cố gắng sửa đổi bản đồĐiều tra viên không nhanh

Lớp kế thừa

Kế thừa Bản đồ trừu tượng lớp họcKế thừa lớp Từ điển

Bây giờ, khi nào bạn có thể sử dụng Java HashMap và Hashtable?

Khi nào sử dụng HashMap và Hashtable?

  • Đồng bộ hóa là sự khác biệt chính giữa Java HashMap và Hashtable. Nhưng nếu cần một hoạt động an toàn cho luồng, thì Hashtable có thể được sử dụng vì tất cả các phương thức của nó được đồng bộ hóa. Tuy nhiên, đây là một lớp kế thừa và chúng phải được tránh. Điều này không thể thực hiện được bởi HashMap.
  • Đối với môi trường đa luồng, bạn có thể sử dụng ConcurrentHashMap gần tương tự như Hashtable. Tại đây, bạn thậm chí có thể làm cho HashMap được đồng bộ hóa một cách rõ ràng
  • Hoạt động đồng bộ dẫn đến hiệu suất kém nên cần tránh cho đến khi và trừ khi được yêu cầu. Do đó, đối với môi trường phi luồng, HashMap chắc chắn được sử dụng mà không nghi ngờ gì.

Điều này đưa chúng ta đến phần cuối của bài viết này, nơi chúng ta đã học được Khác biệt giữa Java HashMap và Hashtable. Hy vọng các bạn rõ ràng với chủ đề này.

Nếu bạn thấy bài viết này về 'Java HashMap vs Hashtable' có liên quan, hãy xem một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu.

Khóa học được thiết kế để giúp bạn có một khởi đầu thuận lợi và đào tạo cho bạn cả các khái niệm Java cốt lõi và nâng cao cùng với các như Hibernate & Spring.

Nếu bạn gặp bất kỳ câu hỏi nào, vui lòng đặt tất cả câu hỏi của bạn trong phần nhận xét của “Java HashMap vs Hashtable” và nhóm của chúng tôi sẽ sẵn lòng trả lời.