🧩 1. Comparable – So sánh mặc định
✅ Định nghĩa:
Comparable<T> là interface bên trong gói java.lang, giúp bạn định nghĩa cách sắp xếp mặc định cho class của mình.
✅ Cách dùng:
-
Lớp bạn muốn sắp xếp cần
implements Comparable<T> -
Phải override phương thức: public int compareTo(T other)
➡️ Sau đó bạn có thể dùng Collections.sort(studentList) để sắp xếp theo tên (mặc định).
🧲 2. Comparator – So sánh tùy chỉnh
✅ Định nghĩa:
Comparator<T> là interface trong java.util, cho phép bạn tạo nhiều cách sắp xếp khác nhau cho cùng một lớp.
✅ Cách dùng:
-
Viết riêng một lớp implements
Comparator<T> -
Override phương thức: public int compare(T o1, T o2)
🔍 So sánh Comparable vs Comparator
| Sự khác biệt | Comparable | Comparator |
|---|---|---|
| Triển khai | Bên trong đối tượng | Bên ngoài đối tượng |
| Số lần triển khai | Một lần duy nhất | Có thể tạo nhiều Comparator khác nhau |
| Sử dụng | Sắp xếp theo một tiêu chí cố định | Sắp xếp theo nhiều tiêu chí khác nhau |
| Phương thức | public int compareTo(Object obj): | public int compare(Object obj1, Object obj2): |
| Được sử dụng để so sánh đối tượng | So sánh đối tượng đầu tiên với đối tượng thứ hai. | |
| Package | java.lang | java.util |
| Sắp xếp | Collections.sort(List) | Collections.sort(List, Comparator) |

.png)
.png)
.png)
.png)
Không có nhận xét nào:
Đăng nhận xét