Cần giải thích đoạn code

2

Em ko hiểu sao set nó lại lưu đc các đối tượng có giá trị trùng nhau ạ?

Do bạn dùng HashSet nên nó phải tính key, mà key mặc định là object ID.

6 Likes

vấn đề là “như thế nào là trùng nhau”

4 Likes

Thế mới có @Override equals@Override hashCode.

5 Likes

Như mọi người đã chỉ ở trên, cậu cần override 2 method equals (định nghĩa khi nào 2 object được coi là bằng nhau) và hashCode (vì cậu dùng HashSet, implement hàm này cho phép cậu phân bố và tìm kiếm các phần tử trong các bucket tốt nhất) cho class A.

5 Likes

Nhiều bạn bây giờ thích học kiểu ăn xổi nhưng không bao giờ chịu tự đặt câu hỏi để tư duy nhỉ.
Nếu là mình thì khi gặp vấn đề này thì sẽ lại thắc mắc bằng cách thần kỳ nào mà java biết được 2 object là giống hay khác nhau? Liệu có gì đó giúp java làm việc đó không? Nếu có cách thì đó là gì? Tại sao phải làm như thế? Tự tìm hiểu và trả lời mấy câu hỏi trên mà mình học được cách sử dụng đúng với các thư viện có sẵn, không những vậy còn giúp mình tự nghĩ ra phương án triển khai khi gặp các pattern tương tự. Thấy vì phụ thuộc thư viện thì mình tạo ra thư viện

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