Cho mình hỏi phương thức GetHashCode() trong C# để làm gì?
GetHashCode trong C# để làm gì?
Mình chưa tìm hiểu nhưng mà theo mình như tên gọi là get lấy giá trị khi băm của đối tượng.
Thấy link này có vẻ dc :
GetHashCode() là hàm để lấy giá trị băm của đối tượng.
Vậy giá trị băm là gì? Theo cách hiểu của mình, giá trị băm là một số nguyên (int), đại diện cho một đối tượng. Đại loại như là Địa chỉ iP của một đối tượng để phân biệt nó với các đối tượng cùng một lớp.
Hai đối tượng khác nhau thì GetHashCode() có giá trị khác nhau.Vi dụ:
GetHashCode() của một số nguyên là chính nó.
GetHashCode() của một điểm (x,y) là giá trị x^y.
Tùy mình quy định “hàm băm” cho nó thôi.
Theo anh thì hàm băm để làm gì nữa?
Hàm băm phục vụ tìm kiếm với thời gian O(1)
Làm gì có kiểu tìm kiếm thời gian O(1) cùng lắm là O(log n) thôi.
Có chứ, sao lại không
Chắc anh đang định nói đến tìm kiếm trong mảng?
Uhm, đạt được O(1) chỉ khi mình quy định hash function phù hợp.