Có thể so sánh giao diện cung cấp CompareTo () phương pháp sắp xếp các đối tượng. Thứ tự này được gọi là lớp học đặt hàng tự nhiên và CompareTo () phương pháp được gọi là phương pháp so sánh tự nhiên . Bộ so sánh giao diện cung cấp các phương pháp để thực hiện hoạt động sắp xếp . Bằng cách sử dụng Bộ so sánh giao diện chúng tôi có thể thực hiện nhiều trình tự sắp xếp . Chúng tôi có thể sắp xếp các đối tượng liên quan đến nhiều thành viên dữ liệu.
so sánhTo ()
CompareTo () phương thức so sánh đối tượng này với một đối tượng o1 và trả về một số nguyên .
Cú pháp
public int compareTo(Object o1)
- Nó trả về số –ve nếu &chỉ khi đối tượng này nhỏ hơn o1.
- Nó trả về + số ve nếu &chỉ khi đối tượng này lớn hơn o1.
- Nó trả về 0 nếu &chỉ khi đối tượng này bằng o1.
Ví dụ
import java.util.*; class Employee implements Comparable { String name; int age; Employee(String name, int age) { this.name = name; this.age = age; } //overridden compareTo method @Override public int compareTo(Object o) { return this.age - ((Employee) o).age; } } public class ComparableDemo { public static void main(String[] args) { // CREATION List list = new ArrayList<>(); //INSERTION list.add(new Employee("Krishna", 30)); list.add(new Employee("Archana", 28)); list.add(new Employee("Vineet", 25)); list.add(new Employee("Ramesh", 38)); list.add(new Employee("Alok", 28)); System.out.println("Before sorting: "); for (Employee e : list) { System.out.print("[ EMP : age = " + e.age + " ] "); } //SORTING Collections.sort(list); System.out.println("After sorting: "); for (Employee e : list) { System.out.print("[ EMP : age = " + e.age + " ] "); } } }
Đầu ra
Before sorting: [ EMP : age = 2 ] [ EMP : age = 33 ] [ EMP : age = 11 ] [ EMP : age = 34 ] [ EMP : age = 7 ] After sorting: [ EMP : age = 2 ] [ EMP : age = 7 ] [ EMP : age = 11 ] [ EMP : age = 33 ] [ EMP : age = 34 ]
so sánh ()
so sánh () phương thức so sánh đối tượng đầu tiên với đối tượng thứ hai và trả về một số nguyên
Cú pháp
public int compare (Object o1,Object o2)
- Nó trả về số –ve nếu &chỉ khi o1 nhỏ hơn o2
- Nó trả về + số ve nếu &chỉ khi o1 lớn hơn o2
- Nó trả về 0 nếu &chỉ khi o1 bằng o2
Ví dụ
import java.util.*; class Student { String name; int age, roll; Student(String name, int age, int roll) { this.name = name; this.age = age; this.roll = roll; } } class AgeComparator implements Comparator { @Override public int compare(Object o1, Object o2) { return ((Student) o1).age - ((Student) o2).age; } } class RollComparator implements Comparator { @Override public int compare(Object o1, Object o2) { return ((Student) o1).roll - ((Student) o2).roll; } } public class ComparatorDemo { public static void main(String[] args) { List list = new ArrayList<>(); list.add(new Student("Ramesh", 30, 20)); list.add(new Student("Adithya", 7, 10)); list.add(new Student("Krishna", 25, 5)); list.add(new Student("Vineet", 24, 15)); System.out.println("BEFORE SORTING"); for (Student e : list) { System.out.println("[ STU : name = " + e.name + " age = " + e.age + " roll = " + e.roll + "]"); } Collections.sort(list,new AgeComparator()); System.out.println("AFTER SORTING WITH AGE"); for (Student e : list) { System.out.println("[ STU : name = " + e.name + " age = " + e.age + " ]"); } Collections.sort(list,new RollComparator()); System.out.println("AFTER SORTING WITH ROLL"); for (Student e : list) { System.out.println("[ STU : name = " + e.name + " roll = " + e.roll + " ]"); } } }
Đầu ra
BEFORE SORTING [ STU : name = Ramesh age = 30 roll = 20 ] [ STU : name = Adithya age = 7 roll = 10 ] [ STU : name = Krishna age = 25 roll = 5 ] [ STU : name = Vineet age = 24 roll = 15 ] AFTER SORTING WITH AGE [ STU : name = Adithya age = 7 ] [ STU : name = Vineet age = 24 ] [ STU : name = Krishna age = 25 ] [ STU : name = Ramesh age = 30 ] AFTER SORTING WITH ROLL [ STU : name = Krishna roll = 5 ] [ STU : name = Adithya roll = 10 ] [ STU : name = Vineet roll = 15 ] [ STU : name = Ramesh roll = 20 ]