Hai đối tượng sẽ luôn bằng nhau khi phương thức CompareTo () của chúng trả về 0?
Hai đối tượng sẽ luôn bằng nhau khi phương thức CompareTo () của chúng trả về 0?

Video: Hai đối tượng sẽ luôn bằng nhau khi phương thức CompareTo () của chúng trả về 0?

Video: Hai đối tượng sẽ luôn bằng nhau khi phương thức CompareTo () của chúng trả về 0?
Video: Java 54 - Xây dựng phương thức so sánh compareTo và hiểu rõ về Comparable trong Java 2024, Có thể
Anonim

Nó Là đề nghị rằng so với chỉ một trả lại 0, nếu một cuộc gọi đến bằng trên các đối tượng giống nhau sẽ trở lại thật: so với (e2) == 0 Có cùng giá trị boolean là e1. bằng (e2) với mọi e1 và e2 của lớp C. Lưu ý rằng null Là không phải là một thể hiện của bất kỳ lớp nào, và e.

Hơn nữa, liệu hàm equals () có thể trả về false ngay cả khi nội dung của hai đối tượng giống nhau không?

4 Câu trả lời. Trong java phương thức public boolean bằng ( Sự vật obj) được kế thừa từ Sự vật . Tuy nhiên, việc thực hiện phương pháp như được định nghĩa trong Sự vật lớp học đó là bằng phương pháp sẽ trở lại nếu và chỉ nếu như NS hai đối tượng được so sánh là tương tự ví dụ.

Sau đó, câu hỏi đặt ra là, tại sao CompareTo () phải nhất quán với phương thức equals () trong Java? Điều này là như vậy bởi vì giao diện Bản đồ được xác định theo bằng nhưng một bản đồ thực hiện tất cả các phép so sánh chính bằng cách sử dụng so với (hoặc so sánh) phương pháp , vì vậy hai chìa khóa được coi là bình đẳng bởi cái này phương pháp từ quan điểm của bản đồ được sắp xếp, bình đẳng.

Theo dõi điều này, sự khác biệt giữa phương thức == equals () và CompareTo () là gì?

so với : So sánh hai chuỗi về mặt từ vựng. bằng : So sánh chuỗi này với đối tượng được chỉ định. so với so sánh hai chuỗi theo ký tự của chúng (tại cùng một chỉ mục) và trả về một số nguyên (dương hoặc âm) tương ứng. bằng () kiểm tra xem hai đối tượng có giống nhau hay không và trả về một boolean.

Chúng ta có thể ghi đè phương thức CompareTo không?

Ghi đè phương thức so sánh Nó sẽ trả về một số nguyên âm (thường là -1), nếu đối tượng kích hoạt hiện tại nhỏ hơn giá trị đã qua một và số nguyên dương (thường là +1) nếu lớn hơn và 0 nếu bằng. phương pháp so sánh sẽ ném một ngoại lệ nếu đối tượng được truyền có kiểu không tương thích hoặc null.

Đề xuất: