logo

Java Primerljiv vmesnik

Vmesnik Java Comparable se uporablja za razvrščanje objektov uporabniško definiranega razreda. Ta vmesnik je v paketu java.lang in vsebuje samo eno metodo z imenom compareTo(Object). Zagotavlja samo eno zaporedje razvrščanja, kar pomeni, da lahko elemente razvrstite samo na podlagi enega samega podatkovnega člana. Na primer, lahko je rollno, ime, starost ali karkoli drugega.

metoda compareTo(Object obj).

public int compareTo(Object obj): Uporablja se za primerjavo trenutnega predmeta z navedenim objektom. Vrača se

  • pozitivno celo število, če je trenutni objekt večji od podanega objekta.
  • negativno celo število, če je trenutni objekt manjši od podanega objekta.
  • nič, če je trenutni objekt enak podanemu objektu.

Lahko razvrstimo elemente:

  1. Objekti nizov
  2. Objekti razreda ovojnice
  3. Uporabniško definirani objekti razreda

Razred zbirk

Zbirke ponuja statične metode za razvrščanje elementov zbirk. Če so elementi zbirke Set ali Map, lahko uporabimo TreeSet ali TreeMap. Vendar elementov seznama ne moremo razvrstiti. Razred Zbirke nudi metode za razvrščanje elementov elementov tipa Seznam.

Metoda razreda Collections za razvrščanje elementov seznama

javna neveljavna razvrstitev (seznam seznama): Uporablja se za razvrščanje elementov seznama. Elementi seznama morajo biti tipa Primerljivo.

Opomba: Razred nizov in razredi Wrapper privzeto izvajajo vmesnik Comparable. Torej, če shranite objekte nizov ali razredov ovoja na seznam, nabor ali zemljevid, bo privzeto primerljiv.


Java primerljiv primer

Oglejmo si primer vmesnika Comparable, ki razvršča elemente seznama na podlagi starosti.

Datoteka: 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; } } 

Datoteka: 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 primerljiv primer: obratni vrstni red

Oglejmo si isti primer vmesnika Comparable, ki razvršča elemente seznama na podlagi starosti v obratnem vrstnem redu.

Datoteka: 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,&apos;Vijay&apos;,23)); al.add(new Student(106,&apos;Ajay&apos;,27)); al.add(new Student(105,&apos;Jai&apos;,21)); Collections.sort(al); for(Student st:al){ System.out.println(st.rollno+&apos; &apos;+st.name+&apos; &apos;+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