30/09/2018, 17:54

GetHashCode trong C#?

Cho mình hỏi phương thức GetHashCode() trong C# để làm gì?

Nguyễn Văn Tâm viết 20:00 ngày 30/09/2018

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.

Phạm Hoàng Tuấn viết 20:09 ngày 30/09/2018

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

stackoverflow.com
Nghia Nguyen

What is hashCode used for? Is it unique?

c#
asked by Nghia Nguyen on 02:15AM - 15 Sep 11

hacked viết 20:09 ngày 30/09/2018

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.

Minh Hoàng viết 20:04 ngày 30/09/2018

Tùy mình quy định “hàm băm” cho nó thôi.

hacked viết 19:55 ngày 30/09/2018

Theo anh thì hàm băm để làm gì nữa?

Nguyễn Văn Tâm viết 19:56 ngày 30/09/2018

Hàm băm phục vụ tìm kiếm với thời gian O(1)

hacked viết 20:00 ngày 30/09/2018

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.

Minh Hoàng viết 20:06 ngày 30/09/2018

Có chứ, sao lại không

hacked viết 20:11 ngày 30/09/2018

Chắc anh đang định nói đến tìm kiếm trong mảng?

Minh Hoàng viết 19:56 ngày 30/09/2018

Uhm, đạt được O(1) chỉ khi mình quy định hash function phù hợp.

en.wikipedia.org

Hash table

In computing, a hash table (hash map) is a data structure that implements an associative array abstract data type, a structure that can map keys to values. A hash table uses a hash function to compute an index into an array of buckets or slots, from which the desired value can be found. Ideally, the hash function will assign each key to a unique bucket, but most hash table designs employ an imperfect hash function, which might cause hash collisions where the hash function generates the same in...

Bài liên quan
0