TP2-Collections_Correction
/*****************Etudiant.java*****************************/
import java.util.Objects;
public class Etudiant implements Comparable<Etudiant>{
private int cin;
private String nom;
private double moy;
public Etudiant(int cin, String nom, double moy) {
this.cin = cin;
this.nom = nom;
this.moy = moy;
}
public int getCin() {
return cin;
}
public void setCin(int cin) {
this.cin = cin;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public double getMoy() {
return moy;
}
public void setMoy(double moy) {
this.moy = moy;
}
@Override
public String toString() {
Safa Mejdoub Page 1
return "Etudiant [cin=" + cin + ", nom=" + nom + ",
moy=" + this.moy+ "] ";
}
@Override
public boolean equals(Object o)
{
if(o==null) return false;
if(this.getClass() != o.getClass()) return false;
Etudiant E=(Etudiant)o;
if(this.cin == E.getCin())
return true;
return false;
}
@Override
public int hashCode()
{
return Objects.hash(cin);
}
@Override
public int compareTo(Etudiant E1) {
return (int)(this.moy - E1.getMoy()) ;
}}
/*****************Classe.java*****************************/
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class Classe implements Comparable<Classe> {
private int idC;
private int capacity;
Set<Etudiant> Etudiants = new HashSet<Etudiant>();
public int getIdC() {
return idC;
}
Safa Mejdoub Page 2
public void setIdC(int idC) {
this.idC = idC;
}
public int getCapacity() {
return capacity;
}
public void setCapacity(int capacity) {
this.capacity = capacity;
}
public void ajout(Etudiant E)
{
Etudiants.add(E);
}
//afficher les détails de la classe
void affiche()
{
System.out.println("id classe: "+ this.idC +
"capacité de la classe: "+ this.capacity);
Iterator<Etudiant> it=Etudiants.iterator();
while(it.hasNext())
System.out.println(it.next());
boolean Existe(Etudiant E)
{
return (Etudiants.contains(E));
//afficher les détails de l'étudiant ayant la meilleur
moyenne
void afficheEtudMaxMoy()
{
TreeSet<Etudiant> t = new
TreeSet<Etudiant>(Etudiants);
System.out.println("moyenne max:"+ t.last());
Safa Mejdoub Page 3
}
public static void main(String[] args) {
Classe c = new Classe();
Etudiant E1=new Etudiant(10,"A", 16);
Etudiant E2= new Etudiant(20,"B", 10);
c.ajout(E1);
c.ajout(E2);
c.affiche();
c.afficheEtudMaxMoy();
//System.out.println(c.Existe(new
Etudiant(20,"Z",10)));
}
@Override
public int compareTo(Classe o) {
return (int)(this.capacity - o.capacity);
}}
/*****************departement.java*****************************/
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Departement {
private String nomDep;
Map<Integer, Classe> Classes= new HashMap<>() ;
public void ClassesCapMax()
{
//première solution (comparable)
List<Classe> l= new
ArrayList<>(Classes.values());
Collections.sort(l);
//dernier elt
Safa Mejdoub Page 4
//sinon dans la méthode compareTo on inverse la
comparaison et on prends le premier elt
System.out.println(l.get(l.size()-1));
//deuxième solution(comparator)
capacityComparator capacityComparator = new
capacityComparator();
Collections.sort(l, capacityComparator);
//on prend le premier car on a inversé la
comparaison ds la méthode compare
System.out.println(l.get(0));
}
/*public void afficher()
{
}*/
public boolean existe(Classe C)
{
Classes.containsKey(C.getIdC());
return true;
}
/*ajouter(Classe C)
{
}*/
/*****************capacityComparator.java***************************
**/
import java.util.Comparator;
public class capacityComparator implements
Comparator<Classe>{
@Override
public int compare(Classe c1, Classe C2) {
Safa Mejdoub Page 5
return(C2.getCapacity()- c1.getCapacity());
Safa Mejdoub Page 6