Java salīdzināmais interfeiss tiek izmantots, lai sakārtotu lietotāja definētās klases objektus. Šis interfeiss ir atrodams java.lang pakotnē, un tajā ir tikai viena metode ar nosaukumu salīdzinātTo(Object). Tas nodrošina tikai vienu kārtošanas secību, t.i., jūs varat kārtot elementus, pamatojoties tikai uz vienu datu dalībnieku. Piemēram, tas var būt rollno, vārds, vecums vai jebkas cits.
salīdzinātTo(Objekta objekts) metode
publisks int salīdzinātTo(Objekta objekts): To izmanto, lai salīdzinātu pašreizējo objektu ar norādīto objektu. Tas atgriežas
- pozitīvs vesels skaitlis, ja pašreizējais objekts ir lielāks par norādīto objektu.
- negatīvs vesels skaitlis, ja pašreizējais objekts ir mazāks par norādīto objektu.
- nulle, ja pašreizējais objekts ir vienāds ar norādīto objektu.
Mēs varam kārtot elementus:
- Stīgu objekti
- Iesaiņojuma klases objekti
- Lietotāja definēti klases objekti
Kolekcijas klase
Kolekcijas klase nodrošina statiskas metodes kolekciju elementu šķirošanai. Ja kolekcijas elementi ir Set vai Map, mēs varam izmantot TreeSet vai TreeMap. Tomēr mēs nevaram kārtot saraksta elementus. Kolekciju klase nodrošina metodes List tipa elementu elementu kārtošanai.
Kolekciju klases metode saraksta elementu kārtošanai
publisks tukšuma kārtošana (saraksta saraksts): To izmanto, lai kārtotu saraksta elementus. Saraksta elementiem ir jābūt Salīdzināmā tipa.
Piezīme. Virkņu klase un Iesaiņojuma klases pēc noklusējuma ievieš saskarni Comparable. Tātad, ja virkņu vai iesaiņojuma klašu objektus saglabājat sarakstā, kopā vai kartē, pēc noklusējuma tas būs Salīdzināms.
Java salīdzināms piemērs
Apskatīsim salīdzināmās saskarnes piemēru, kas kārto saraksta elementus pēc vecuma.
Fails: Student.java
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; } }
Fails: TestSort1.java
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
Java salīdzināms piemērs: apgrieztā secībā
Apskatīsim to pašu salīdzināmās saskarnes piemēru, kas apgrieztā secībā kārto saraksta elementus pēc vecuma.
Fails: Student.java
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