Јава Цомпарабле интерфејс се користи за наручивање објеката класе коју дефинише корисник. Овај интерфејс се налази у пакету јава.ланг и садржи само један метод по имену цомпареТо(Објецт). Обезбеђује само једну секвенцу сортирања, тј. можете сортирати елементе само на основу једног члана података. На пример, може бити роллно, име, старост или било шта друго.
цомпареТо(Објецт обј) метода
публиц инт цомпареТо(Објецт обј): Користи се за поређење тренутног објекта са наведеним објектом. Враћа се
- позитиван цео број, ако је тренутни објекат већи од наведеног објекта.
- негативан цео број, ако је тренутни објекат мањи од наведеног објекта.
- нула, ако је тренутни објекат једнак наведеном објекту.
Можемо сортирати елементе:
- Стринг објекти
- Објекти класе омотача
- Кориснички дефинисани објекти класе
Цоллецтионс цласс
Збирке класа обезбеђује статичке методе за сортирање елемената колекција. Ако су елементи колекције скуп или мапа, можемо користити ТрееСет или ТрееМап. Међутим, не можемо сортирати елементе Листе. Класа Цоллецтионс обезбеђује методе за сортирање елемената елемената типа Лист.
Метод класе Цоллецтионс за сортирање елемената листе
јавно неважеће сортирање (листа листе): Користи се за сортирање елемената листе. Елементи листе морају бити типа Цомпарабле.
Напомена: Класе Стринг и класе омотача подразумевано имплементирају Цомпарабле интерфејс. Дакле, ако складиштите објекте стринг или класе омотача у листу, скуп или мапу, он ће подразумевано бити упоредив.
Јава Цомпарабле Пример
Погледајмо пример интерфејса Цомпарабле који сортира елементе листе на основу старости.
Фајл: Студент.јава
class Student implements Comparable{ int rollno; String name; int age; Student(int rollno,String name,int age){ this.rollno=rollno; this.name=name; this.age=age; } public int compareTo(Student st){ if(age==st.age) return 0; else if(age>st.age) return 1; else return -1; } }
Датотека: ТестСорт1.јава
import java.util.*; public class TestSort1{ public static void main(String args[]){ ArrayList al=new ArrayList(); al.add(new Student(101,'Vijay',23)); al.add(new Student(106,'Ajay',27)); al.add(new Student(105,'Jai',21)); Collections.sort(al); for(Student st:al){ System.out.println(st.rollno+' '+st.name+' '+st.age); } } }
105 Jai 21 101 Vijay 23 106 Ajay 27
Јава упоредив пример: обрнути редослед
Хајде да видимо исти пример интерфејса Цомпарабле који сортира елементе листе на основу старости обрнутим редоследом.
Фајл: Студент.јава
class Student implements Comparable{ int rollno; String name; int age; Student(int rollno,String name,int age){ this.rollno=rollno; this.name=name; this.age=age; } public int compareTo(Student st){ if(age==st.age) return 0; else if(age<st.age) return 1; else -1; } < pre> <p>File: TestSort2.java</p> <pre> import java.util.*; public class TestSort2{ public static void main(String args[]){ ArrayList al=new ArrayList(); al.add(new Student(101,'Vijay',23)); al.add(new Student(106,'Ajay',27)); al.add(new Student(105,'Jai',21)); Collections.sort(al); for(Student st:al){ System.out.println(st.rollno+' '+st.name+' '+st.age); } } } </pre> <pre> 106 Ajay 27 101 Vijay 23 105 Jai 21 </pre></st.age)>
106 Ajay 27 101 Vijay 23 105 Jai 21