Tầm quan trọng của phương thức hashCode()
và equals()
trong Java là gì?
Tầm quan trọng của phương thức hashCode()
và equals()
trong Java là gì?
Trong Java, phương thức hashCode()
và equals()
đóng một vai trò quan trọng trong việc so sánh đối tượng và quản lý các đối tượng trong các cấu trúc dữ liệu dựa trên bảng băm như HashSet
, HashMap
, HashTable
, và LinkedHashMap
.
hashCode()
hashCode()
trả về một giá trị int
được sử dụng để phân phối đối tượng trong các cấu trúc dữ liệu dựa trên bảng băm.equals()
, bạn cũng cần phải ghi đè phương thức hashCode()
để duy trì hợp đồng hashCode
mà Java định nghĩa: hai đối tượng bằng nhau theo phương thức equals()
phải có cùng một giá trị hashCode
.hashCode()
không được ghi đè một cách thích hợp, điều này có thể dẫn đến việc hai đối tượng bằng nhau theo equals()
nhưng được xử lý như là hai đối tượng khác nhau trong các cấu trúc dữ liệu dựa trên bảng băm, gây ra các lỗi logic và hiệu suất không mong muốn.equals()
equals()
xác định cách hai đối tượng được so sánh với nhau về mặt bằng nhau. Mặc định, phương thức equals()
được kế thừa từ lớp Object
so sánh địa chỉ bộ nhớ của hai đối tượng (so sánh tham chiếu).middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào