Từ điển C # là một cách đơn giản để tìm nếu có thứ gì đó tồn tại, v.v. Tôi có một câu hỏi mặc dù về cách chúng hoạt động. Giả sử thay vì từ điển tôi sử dụng ArrayList. Thay vì sử dụng ContainsKey
(hoặc một phương thức tương đương trong ngôn ngữ khác), tôi lặp qua ArrayList để kiểm tra xem có thứ gì đó tồn tại ở đó không (hoặc thực hiện tìm kiếm nhị phân nếu dữ liệu được sắp xếp hoặc một cái gì đó tương tự). Sự khác biệt về hiệu quả là gì? Là ContainsKey
phương pháp sử dụng một số cách hiệu quả hơn thay vì lặp qua các phím và kiểm tra xem những gì tôi đang tìm kiếm có tồn tại không?
Nếu giả sử tôi đã tạo một hàm băm cụ thể tương ứng với loại dữ liệu mà tôi đang có và được thiết kế riêng cho bộ dữ liệu đó thì có, hàm băm đó thực sự nhanh hơn việc lặp qua dữ liệu. Nhưng từ điển là chung. Phương thức ContainsKey không dành riêng cho dữ liệu mà nó nhận được, đây là phương pháp tìm kiếm chung.
Về cơ bản những gì tôi đang hỏi là. Từ điển rất hữu ích cho các lập trình viên. Chúng bao gồm các phương thức trợ giúp nhiều thứ và chúng kết hợp các chuỗi với số nguyên, (khóa và giá trị) và nhiều thứ khác. Nhưng liên quan đến hiệu quả, họ cung cấp những gì? Sự khác biệt trong việc có một là gì dictionary
vs một ArrayList
củastructs(string,int)
Data Structures
liên kết wiki này có thể giúp ích nhiều hơn cho bạn