비교 가능 인터페이스는 compareTo() 를 제공합니다. 객체의 순서를 지정하는 방법. 이 순서를 클래스의 라고 합니다. 자연스러운 순서 및 compareTo() 방법을 자연 비교 방법이라고 합니다. . 비교기 인터페이스는 정렬 작업을 수행하는 방법을 제공합니다. . 비교기 사용 여러 정렬 순서를 수행할 수 있는 인터페이스 . 여러 데이터 멤버를 기준으로 개체를 정렬할 수 있습니다.
compareTo()
compareTo() 메소드는 이 객체를 o1 객체와 비교하고 정수를 반환합니다. .
구문
public int compareTo(Object o1)
- 이 객체가 o1보다 작은 경우에만 &이면 -ve 숫자를 반환합니다.
- 이 개체가 o1보다 큰 경우에만 &인 경우 +ve 숫자를 반환합니다.
- 이 객체가 o1인 경우에만 &이면 0을 반환합니다.
예시
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 + " ] "); } } }
출력
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 ]
비교()
비교() 메서드는 첫 번째 개체를 두 번째 개체와 비교하고 정수를 반환합니다.
구문
public int compare (Object o1,Object o2)
- o1이 o2보다 작은 경우에만 -ve 숫자를 반환합니다.
- o1이 o2보다 큰 경우에만 &이면 +ve 숫자를 반환합니다.
- o1이 o2와 같을 때만 &이면 0을 반환합니다.
예시
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 + " ]"); } } }
출력
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 ]