Hash code là gì

     

Giới thiệu nội dung bài viết

Trong lập trình Java, Equal cùng Hashcode là phần đông phương thức quan trọng đặc biệt đối với tất cả các Object. Vậy Equal, Hashcode là gì? Chúng quan trọng đặc biệt như cầm nào vào lập trình Java? mục đích sử dụng và phương pháp để thao tác cùng với Equal với Hashcode trong lập trình hướng đối tượng người tiêu dùng Java. Bài viết dưới đây với phần đa ví dụ minh hoạ kèm theo trong mỗi phần để giúp bạn đọc được Equal và Hashcode tương tự như biết được cách vận dụng hai thủ tục này vào trong thực hành thực tế lập trình Java.

Bạn đang xem: Hash code là gì

1. Equal trong lập trình sẵn Java là gì

Phương thức equals được thực hiện trong hầu hết các tập vừa lòng để chất vấn xem bộ phận đã lâu dài trong tập phù hợp hay chưa. Ví dụ như như mình muốn kiểm tra xem quý giá 123 đã tất cả trong tập hợp menu chưa nghỉ ngơi ví dụ sau:

1234List các mục = new ArrayList();list.add("123");boolean contains123 = list.contains("123");
Ở ví dụ trên bọn họ sẽ phê chuẩn qua không còn các bộ phận ở trong list kế tiếp thực thi phép so sánh từng thành phần list có bởi giá trị 123 không. Bởi ta truyền vào là 1 chuỗi nên phương thức String.equals() được sử dụng để xem 2 chuỗi có cân nhau hay không

Phương thức equals ngoài được sử dụng cho việc tìm và đào bới kiếm bộ phận đã trường tồn trong tập hợp hay là không thì nó cũng rất được dùng để xoá 1 phần tử thoát ra khỏi tập hợp.

123List danh sách = new ArrayList();list.add("123");boolean removed = list.remove("123");
Ở lấy ví dụ như trên thì danh sách sẽ chăm chút qua các phần tử sau đó xúc tiến phép so sánh nếu tham số truyền vào (123) có bằng với từng phần tử trong tập hợp không. Nếu bằng thì nó xóa đi.

Ở 2 ví dụ trên ta thấy thông số truyền vào là một chuỗi nên bạn có thể so sánh là String.equals. Tuy vậy nếu như ta truyền là đối tượng thì sao. Từ bây giờ chúng ta vẫn tự viết ra biện pháp mà so sánh các đối tượng. Ví như anh muốn so sánh 2 đối tượng Employee có đều bằng nhau hay không.

Đầu tiên anh bao gồm lớp Employee như sau

12345public class Employee protected long employeeId; protected String firstName; protected String lastName;
Ví dụ ta mong muốn nến 2 đối tượng người dùng Employee mà tất cả cùng employeeId thì nó là bởi nhau. Ta thực hiện override cách thức equals như sau.

12345678910public class Employee public boolean equals(Object o) if(o == null) return false; if(!(o instanceof) Employee) return false; Employee other = (Employee) o; return this.employeeId == other.employeeId;
ngoại trừ cách đối chiếu bằng employeeID bạn có thể hoàn toàn so sánh bằng firstName hoặc lastName.Như vậy equals được áp dụng trong tập hòa hợp để đối chiếu các phần tử nhằm mục tiêu kiểm tra phần tử có tồn tại hay chưa hoặc mình thích xóa nó thoát ra khỏi tập hợp.

Xem thêm: Coi Điện Thoại Bị Chảy Máu Mắt Do Dùng Điện Thoại Quá Lâu, Tại Sao Lại Bị Chảy Nước Mắt Khi Xem Điện Thoại

2. HashCode trong lập trình sẵn Java là gì

Ví dụ như anh bao gồm một lớp Student gồm tất cả 2 ở trong tính là id và name như sau

1234567891011public class Student private int id; private String name public Student(int id,String name) this.id = id; this.name = name;
Anh tạo một hàm main để in ấn ra hashcode của đối tượng người tiêu dùng Student
12345678910111213public class Main public static void main(String<> args) Student nguyen = new Student(1,"Le Vu Nguyên") Student vu = new Student(2,"Le Nguyen Vu") System.out.println("HashCode Nguyên" + nguyen.hashCode()) System.out.println("HashCode Vũ" + vu.hashCode())
Như bọn họ thấy vào Java toàn bộ các đối tượng người dùng đều kế thừa từ một đối tượng thân phụ là Object. Trong đối tượng người tiêu dùng Object có 11 cách tiến hành và hashCode là một trong những phương thức đó. Do vậy khi ta tạo đối tượng người sử dụng là Student thì vào Student đã thừa kế phương thức hashCode. Bởi vì vậy cơ mà ta rất có thể gọi cách làm nguyen.hashCode() trong đối tượng người dùng nguyen và vu.hashCode() trong đối tượng người sử dụng vu.

Khi ta chạy hàm main thì ta thừa nhận được hiệu quả là một trong những nguyên như sau :

HashCode Nguyên : 1852704110 HashCode Vũ : 2032578917

Như vậy hàm hashCode tức là sẽ trả về một trong những duy nhất tương xứng với từng object. Từng Object trong java đều có một định danh với định danh để rõ ràng mỗi object đó là giá trị hashcode. Tương tự như họ đều bao gồm một số minh chứng nhân dân vậy.

Vậy hashcode được sinh sản ra như thế nào.

Khi ta tạo thành một đối tượng thì đối tượng đó sẽ được lưu vào bộ lưu trữ HEAP và nó được lưu lại tại một add trong bộ nhớ. Hashcode được tạo ra cho đối tượng bằng phương pháp kết phù hợp giữa add bộ nhớ cùng thêm những tác nhân không giống (như nhân thêm 30 rồi thêm vào đó 2) tiếp nối sẽ đã cho ra một mã hashcode.

Xem thêm: Sữa Th Có Giúp Bé Tăng Cân Không Mới Nhất 4/2022 # Top Like, Th True Milk

bởi thế hashcode chưa phải là địa chỉ cửa hàng vùng nhớ chứa đối tượng người dùng mà nó là một trong thành phần để tạo nên hashcode.

3. Thử nghiệm Video


*
Play

4. Source code

*

Mọi người hãy Subscribe kênh youtube dưới đây nhé để cập nhật các clip mới nhất về kỹ thuật và khả năng mềm