Định nghĩa lại so sánh trong java năm 2024
Cần phải nhớ rằng khi bạn tạo ra các đối tượng, biến lưu đối tượng là một tham chiếu tới đối tượng. Do vậy khi sử dụng toán tử so sánh bằng ==, nó sẽ sử dụng tham chiếu để so sánh chứ không sử dụng giá trị đối tượng so sánh. Show
class Animal { String name; Animal(String n) { }
}
class MyClass {
public static void main(String[ ] args) { }
}
//Outputs Bạn thấy a1, a2 có dữ liệu name giống nhau nhưng so sánh là khác nhau vì nó sử dụng tham khảo a1 là một đối tượng khác với a2 (a1,a2 ở hai vị trí bộ nhớ khác nhau).a1, a3 đều trỏ đến một địa chỉ bộ nhớ lên nó bằng nhau. equals()Mỗi đối tượng đều có một phương thức định nghĩa sẵn equals() được sử dụng để so sánh về dữ liệu. Để sử dụng nó với lớp, bạn cần nạp chồng và thi hành kiểm tra điều kiện bằng nhau hay không. Cách đơn giản với Eclipse là nhấn phải chuột cửa sổ soạn thảo lớp, chọn Trong nhiều tình huống, chúng ta cần so sánh hai giá trị trong các chương trình Java của mình. Việc so sánh các giá trị nguyên thủy như int, char, float, boolean,.., rất dễ dàng và chúng ta có thể so sánh chúng bằng cách sử dụng các toán tử so sánh như <,>, ==,... Nhưng nếu chúng ta muốn so sánh các đối tượng thì sao? Với mục đích này, Java sẽ cung cấp cho chúng ta hai giao diện, đó là giao diện có thể so sánh Comparable và giao diện bộ so sánh Comparator trong Java. Trong bài viết này, chúng ta sẽ tìm hiểu về giao diện so sánh trong Java là gì cùng ví dụ với cách làm việc của Collections.Sort (). Giao diện so sánh trong Java - Giao diện so sánh trong Java là gì?Giao diện so sánh trong Java là gì? Giao diện so sánh trong Java được sử dụng để sắp xếp các đối tượng của các lớp do người dùng định nghĩa. Ví dụ, đối với danh sách các đối tượng của sinh viên, thứ tự tự nhiên có thể là thứ tự của id duy nhất của nhân viên. Nhưng trong các ứng dụng thực tế, chúng ta có thể muốn sắp xếp danh sách sinh viên theo tên, ngày sinh, năm nhập học hoặc đơn giản là bất kỳ tiêu chí nào khác. Trong những điều kiện như vậy, chúng ta cần có giao diện Bộ so sánh ( Comparator interface). Giao diện Comparator của Java có trong gói java.util. Giao diện này chứa 2 phương thức so sánh (Object obj1, Object obj2) và equals (Phần tử đối tượng). Theo mặc định, chúng ta không thể so sánh các đối tượng của một lớp do người dùng định nghĩa. Để làm cho một đối tượng của một lớp do người dùng định nghĩa có thể so sánh được, lớp đó phải triển khai giao diện so sánh Java Comparable. Chúng ta có thể sử dụng giao diện so sánh Java trong các trường hợp sau:
\>>> Tham khảo: Khóa học Lập trình Java Phương thức của giao diện so sánh trong JavaCó hai phương pháp của Giao diện so sánh trong Java, đó là: Phương thức Mô tả compare(Object obj1,Object obj 2) So sánh đối tượng đầu tiên với đối tượng khác. equals(Object obj) So sánh đối tượng hiện tại với đối tượng được chỉ định. \>>> Đọc thêm: Interface trong Java - Tìm hiểu về giao diện trong Java Phương thức Comparator.compare ()Phương pháp so sánh được sử dụng để so sánh hai đối tượng. Cú pháp của nó là: public int compare(Object obj1, Object obj2)Phương thức này so sánh hai đối số của nó theo thứ tự. Nó trở lại -
Ví dụ: Giả sử chúng ta có một mảng Java hoặc một danh sách mảng của lớp riêng chứa các trường như id duy nhất, tên, tuổi, giới tính, v.v. và chúng ta phải sắp xếp danh sách theo thứ tự tên hoặc tuổi. Đối với điều này, chúng ta có thể làm theo hai cách tiếp cận như sau: Phương pháp 1: Một cách tiếp cận rõ ràng là soạn phương thức sort () của riêng chúng ta bằng cách viết các phép tính chuẩn trong đó. Điều này sẽ yêu cầu xem qua toàn bộ mã cho nhiều cơ sở khác nhau như id, tên, v.v. Phương pháp 2: Sử dụng cách tiếp cận này, chúng ta có thể sử dụng giao diện bộ so sánh - Giao diện bộ so sánh Java sắp xếp các đối tượng của một lớp do người dùng định nghĩa. Giao diện này trong Java có sẵn trong gói gói java.util và chứa 2 hàm so sánh (Object obj1, Object obj2) và equals(Object obj).\ \>>> Đọc thêm: Reflection trong Java - Tìm hiểu nhanh về Reflection trong 5 phút Quy tắc sử dụng Giao diện so sánh JavaCó một số quy tắc nhất định để sử dụng Giao diện so sánh Java, chúng như sau:
So sánh giao diện có thể so sánh Comparable và giao diện bộ so sánh Comparator trong Java.Comparator Comparable Comparator sắp xếp các thuộc tính của các đối tượng khác nhau. Giao diện so sánh sắp xếp các đối tượng với thứ tự tự nhiên. Giao diện Comparator so sánh các đối tượng của hai lớp khác nhau. Giao diện có thể so sánh so sánh tham chiếu “this” của đối tượng được chỉ định. Comparator có trong gói java.util . So sánh có trong gói java.lang . Comparator không ảnh hưởng đến lớp gốc. Có thể so sánh ảnh hưởng hoặc sửa đổi lớp gốc Comparator cung cấp các phương thức so sánh () và equals () để sắp xếp các phần tử. So sánh cung cấp một phương thức CompareTo () để sắp xếp các phần tử. Kết luận: Đến phần cuối của bài viết, chúng ta đã tìm hiểu khái niệm Giao diện so sánh trong Java với ví dụ của nó. Chúng ta cũng đã thảo luận về Collections.Sort () với sự trợ giúp của mã Java và cũng phải biết các quy tắc mà bạn nên tuân theo khi sử dụng giao diện Comparator trong Java. Cảm ơn bạn đã đọc bài viết của chúng tôi, nếu bạn có bất kỳ thắc mắc nào liên quan đến Giao diện so sánh Java, hãy cho chúng tôi biết bằng cách để lại bình luận bên dưới. Đừng quên tham khảo thêm các khóa học lập trình về Java và các ngôn ngữ khác tại |