logo

Java palyginama sąsaja

„Java Comparable“ sąsaja naudojama vartotojo apibrėžtos klasės objektams rūšiuoti. Ši sąsaja yra java.lang pakete ir joje yra tik vienas metodas, pavadintas palygintiTo(Object). Jame pateikiama tik viena rūšiavimo seka, t. y. galite rūšiuoti elementus tik pagal vieną duomenų narį. Pavyzdžiui, tai gali būti rollno, vardas, amžius ar dar kas nors.

palyginimasTo(Object obj) metodas

viešas palyginimas su(Objekto objektas): Jis naudojamas dabartiniam objektui palyginti su nurodytu objektu. Tai grįžta

  • teigiamas sveikasis skaičius, jei dabartinis objektas yra didesnis nei nurodytas objektas.
  • neigiamas sveikasis skaičius, jei dabartinis objektas yra mažesnis už nurodytą objektą.
  • nulis, jei dabartinis objektas yra lygus nurodytam objektui.

Mes galime rūšiuoti elementus iš:

modemas vs maršrutizatorius
  1. Styginių objektai
  2. Apvyniojimo klasės objektai
  3. Vartotojo apibrėžti klasės objektai

Kolekcijos klasė

Kolekcijos klasėje pateikiami statiniai kolekcijų elementų rūšiavimo metodai. Jei rinkinio elementai yra Set arba Map, galime naudoti TreeSet arba TreeMap. Tačiau negalime rūšiuoti sąrašo elementų. Kolekcijų klasėje pateikiami sąrašo tipo elementų elementų rūšiavimo metodai.

Sąrašo elementų rūšiavimo klasės rinkinių metodas

viešas tuščias rūšiavimas (sąrašo sąrašas): Jis naudojamas sąrašo elementams rūšiuoti. Sąrašo elementai turi būti palyginamo tipo.

dvejetainių medžių rūšys

Pastaba: eilutės klasė ir įvyniojimo klasės pagal numatytuosius nustatymus įgyvendina palyginamąją sąsają. Taigi, jei išsaugosite eilučių ar įpakavimo klasių objektus sąraše, rinkinyje ar žemėlapyje, pagal numatytuosius nustatymus jis bus palyginamas.


Palyginamas Java pavyzdys

Pažiūrėkime į palyginimo sąsajos, kuri rūšiuoja sąrašo elementus pagal amžių, pavyzdį.

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

Failas: 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 

Palyginamas Java pavyzdys: atvirkštinė tvarka

Pažiūrėkime tą patį palyginimo sąsajos pavyzdį, kuriame sąrašo elementai rūšiuojami pagal amžių atvirkštine tvarka.

css komentaras

Failas: 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