Sự khác biệt giữa Hashtable và Dictionary

Mục lục:

Anonim

Các Sự khác biệt chính giữa Hashtable và Dictionary là Hashtable là một cấu trúc dữ liệu được gõ yếu nên có thể thêm các khóa và giá trị của bất kỳ kiểu nào trong khi Từ điển là cấu trúc dữ liệu được đánh mạnh nên chỉ có thể thêm các phần tử thỏa mãn kiểu dữ liệu được chỉ định cho cả khóa và giá trị.

Hashtable và từ điển là hai cấu trúc dữ liệu chính. Cả hai đều có thể giữ dữ liệu dưới dạng các cặp giá trị chính. Hashtable hoặc Dictionary chỉ có thể chứa các khóa duy nhất. Người lập trình có thể tìm hoặc loại bỏ một giá trị cụ thể bằng cách sử dụng khóa. Hashtable không được gõ mạnh. Do đó, người lập trình có thể thêm bất kỳ phần tử nào của cặp khóa-giá trị vào Hashtable. Mặt khác, Từ điển được đánh máy mạnh mẽ. Lập trình viên nên chỉ định kiểu dữ liệu của các khóa và giá trị. Không thể thêm các phần tử không thỏa mãn kiểu dữ liệu đã cho. Ví dụ, nếu Từ điển có kiểu chung, người lập trình chỉ có thể thêm các phần tử có khóa kiểu int và giá trị kiểu chuỗi.

Từ điển, Bảng băm, Cấu trúc dữ liệu

Loại dữ liệu chung là gì

Kiểu dữ liệu chung là kiểu dữ liệu cho phép người dùng xác định các lớp và phương thức với trình giữ chỗ. Các trình biên dịch như C # có thể thay thế trình giữ chỗ bằng kiểu dữ liệu được chỉ định tại thời điểm biên dịch. Nó được sử dụng để tạo các lớp và phương thức có mục đích chung. Khi xác định một lớp chung, lập trình viên nên sử dụng dấu ngoặc nhọn (). Các dấu ngoặc này khai báo một lớp hoặc phương thức là kiểu chung.

Hashtable là gì

Hashtable là một cấu trúc dữ liệu triển khai một kiểu dữ liệu trừu tượng mảng kết hợp, một cấu trúc có thể ánh xạ khóa thành các giá trị. Nó không phải là một kiểu dữ liệu chung chung. Tham khảo một đoạn mã như sau.

Hình 1: Chương trình C # với Hashtable

Trong chương trình trên, số là một đối tượng kiểu Hashtable. Các cặp khóa-giá trị được thêm vào Hashtable. Từ câu lệnh 15 đến 17, các khóa có kiểu int và các giá trị thuộc kiểu chuỗi. Trong câu lệnh 18, khóa và giá trị là chuỗi. Hashtable là một cấu trúc dữ liệu được đánh hàng tuần. Do đó, lập trình viên có thể thêm các khóa và giá trị thuộc bất kỳ loại nào vào Hashtable.

Hình 2: Đầu ra của chương trình HashTable

Kết quả của chương trình như trên. Hashtable không in các bản ghi theo thứ tự các phần tử được thêm vào. Do đó, nó không duy trì thứ tự đã chèn.

Từ điển là gì

Từ điển sử dụng khái niệm Hashtable. Nó là một kiểu dữ liệu chung. Tham khảo chương trình bên dưới. tên là một đối tượng kiểu Từ điển. Nó có các kiểu dữ liệu cụ thể để lưu trữ cho các khóa và giá trị. Theo chương trình này, các loại chung được định nghĩa là. Do đó, khi thêm các phần tử vào từ điển, cả khóa và giá trị phải thuộc loại chuỗi.

Hình 3: Chương trình C # với Từ điển

Tất cả các phần tử được thêm vào từ điển trên đều có các cặp khóa và giá trị kiểu Chuỗi. Việc in khóa và giá trị vào bảng điều khiển sẽ cho kết quả tương tự như hình 4. Việc lấy các mục từ Từ điển sẽ in các bản ghi theo thứ tự như các phần tử đã được thêm vào. Do đó, nó duy trì thứ tự đã chèn.

Hình 4: Đầu ra chương trình từ điển

Nhìn chung, Dictionary thực thi nhanh nhưng nó không cung cấp sự an toàn cho luồng.

Sự khác biệt giữa Hashtable và Dictionary

Sự định nghĩa

Hashtable là một cấu trúc dữ liệu triển khai một kiểu dữ liệu trừu tượng mảng kết hợp, một cấu trúc có thể ánh xạ khóa thành các giá trị. Từ điển là một cấu trúc dữ liệu dựa trên Hashtable lưu trữ các giá trị trên cơ sở các khóa.

Thêm phần tử

Hơn nữa, Hashtable là một cấu trúc dữ liệu được đánh máy yếu. Do đó, người lập trình có thể thêm các khóa và giá trị của bất kỳ kiểu đối tượng nào vào Hashtable. Một Từ điển là cấu trúc dữ liệu được đánh máy mạnh mẽ. (

Kiểu

Ngoài ra, Hashtable không phải là loại chung trong khi Từ điển là loại chung.

Tốc độ thực thi

Ngoài ra, có boxing và unboxing trong Hashtable nhưng không có trong Dictionary. Từ điển sử dụng bộ nhớ tối thiểu và thực thi nhanh hơn Hashtable.

Truy xuất các phần tử

Việc truy xuất các phần tử trong Hashtable không duy trì thứ tự đã chèn. Mặt khác, việc truy xuất các phần tử từ một Từ điển duy trì thứ tự đã chèn.

An toàn chủ đề

Cú pháp mẫu

Hashtable ht = new Hashtable ();

Từ điển từ điển = new Dictionary ();.

Phần kết luận

Sự khác biệt giữa Hashtable và Dictionary là Hashtable là cấu trúc dữ liệu được gõ yếu nên có thể thêm các khóa và giá trị thuộc bất kỳ kiểu nào trong khi Dictionary là cấu trúc dữ liệu được gõ mạnh nên chỉ có thể thêm các phần tử thỏa mãn các điều kiện đã chỉ định. kiểu dữ liệu cho cả khóa và giá trị.

Thẩm quyền giải quyết:

1. “Lớp Hashtable C #.” Www.tutorialspoint.com, Tutorials Point, ngày 21 tháng 7 năm 2018, có sẵn tại đây. “Bảng băm C #.” Các kiểu dữ liệu trong C #, Giáo viên hướng dẫn. Có sẵn tại đây.3. “Từ điển C # - Javatpoint.” Www.javatpoint.com, Có sẵn tại đây.

Sự khác biệt giữa Hashtable và Dictionary