Login: password:
Forgot your password?
Comparator
Questo esempio si basa sul polimorfismo e sul concetto di comparator.
 Si esamini il codice e si cerchi di comprendere dettagliatamente l'ordine dell'output.

Main.java


package comparatorexample;

import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        Docente x=new Docente("Mario");
        Docente y=new Docente("Sandra");
        Studente z=new Studente("Giovanna");
        Studente w=new Studente("Antonio");
        List<Persona> c=new LinkedList<Persona>();
        c.add(x);
        c.add(y);
        c.add(z);
        c.add(w);
        Collections.sort(c);
        Iterator<Persona> i=c.iterator();
        while (i.hasNext()) {
            Persona p=i.next();
            System.out.println(p);
        }
    }

}

Output:
Sandra Docente
Mario Docente
Giovanna Studente
Antonio Studente

Persona.java

package comparatorexample;

class Persona implements Comparable{
    String name=null;
    public int compareTo(Object t) {
        if (t instanceof Docente) return 1;
        else if(t instanceof Studente) return -1;
        return 0;
    }
    @Override
    public String toString(){
    return name+" "+this.getClass().getSimpleName();
    }

}

Docente.java

package comparatorexample;

class Docente extends Persona implements Comparable{
    public Docente(String s) {name=s;}
   
    public int compareTo(Docente t) {
        return this.name.compareTo(t.name);
    }

}

Studente.java

package comparatorexample;

class Studente extends Persona implements Comparable{
    public Studente(String s) {name=s;}
    public int compareTo(Studente t) {
        return this.name.compareTo(t.name);
    }
}



powered by segue
segue_logo