GetHashCode trong C# để làm gì?

Cho mình hỏi phương thức 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.
:grin:

1 Like

Thấy link này có vẻ dc :

1 Like

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.

1 Like

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 :grinning:

1 Like

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.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?