Định Nghĩa Java compareTo()
Trong Java, phương thức compareTo()
là một phần của interface Comparable
. Nó được sử dụng để so sánh hai đối tượng với nhau. Phương thức này thường được dùng để sắp xếp các đối tượng trong một danh sách theo thứ tự tự nhiên của chúng.
Phương thức compareTo()
trả về:
- Số âm nếu đối tượng hiện tại (this) nhỏ hơn đối tượng được so sánh.
- Đúng bằng 0 nếu chúng bằng nhau.
- Số dương nếu đối tượng hiện tại lớn hơn đối tượng được so sánh.
Cú Pháp
public int compareTo(T o);
Trong đó T
là kiểu đối tượng mà bạn muốn so sánh.
Ví Dụ
Ví Dụ 1: So sánh chuỗi
import java.util.ArrayList; import java.util.Collections; public class CompareToExample { public static void main(String[] args) { ArrayListstrings = new ArrayList<>(); strings.add("Apple"); strings.add("Banana"); strings.add("Cherry"); Collections.sort(strings); System.out.println("Danh sách sau khi sắp xếp:"); for (String str : strings) { System.out.println(str); } } }
Trong ví dụ trên, các chuỗi sẽ được sắp xếp theo thứ tự bảng chữ cái.
Ví Dụ 2: So sánh tùy chỉnh với Class
class Person implements Comparable{ String name; int age; Person(String name, int age) { this.name = name; this.age = age; } @Override public int compareTo(Person other) { return this.age - other.age; // So sánh theo tuổi } } import java.util.ArrayList; import java.util.Collections; public class PersonCompareToExample { public static void main(String[] args) { ArrayList people = new ArrayList<>(); people.add(new Person("Alice", 30)); people.add(new Person("Bob", 25)); people.add(new Person("Charlie", 35)); Collections.sort(people); System.out.println("Danh sách sau khi sắp xếp theo tuổi:"); for (Person person : people) { System.out.println(person.name + " - " + person.age); } } }
Trong ví dụ này, chúng ta đã định nghĩa một lớp Person
và cài đặt phương thức compareTo()
để so sánh theo tuổi. Khi sắp xếp, danh sách sẽ được sắp xếp theo tuổi của từng người.
Kết Luận
Phương thức compareTo()
rất hữu ích khi bạn cần sắp xếp hoặc so sánh các đối tượng. Nó giúp bạn dễ dàng thực hiện các tác vụ mà không cần phải viết nhiều mã để so sánh theo cách thủ công. Việc cài đặt đúng phương thức này giúp bạn kiểm soát cách sắp xếp các đối tượng trong chương trình của mình.