Trier des valeurs en java
sisimouhamed
Messages postés
79
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
j'ai fais un programme java qui affiche des nom de personne et des nombres concernant leur nombre de consultation.pour cela j'aimerais trier les nombres par ordre croissant mais j'arrive pas à bien le faire.Voici ce que j'ai deja fait:
public class Malade implements java.lang.Comparable
{
String nom;
int nbIntox;
Malade (String nom, int nbIntox) {
this.nom = nom;
this.nbIntox = nbIntox;
}
public int compareTo(Object o)
{
int nombre1 = ((Malade) o).nbIntox;
int nombre2 = this.nbIntox;
if (nombre1 > nombre2) return -1;
else if(nombre1 == nombre2) return 0;
else return 1;
}
}
je veut faire le tri dans cette methode:
static void afficherMalades (List liste)
{
for (int i = 0; i < liste.size(); i++)
{
Malade p = (Malade) liste.get(i);
System.out.println(p);
}
}
j'ai fais un programme java qui affiche des nom de personne et des nombres concernant leur nombre de consultation.pour cela j'aimerais trier les nombres par ordre croissant mais j'arrive pas à bien le faire.Voici ce que j'ai deja fait:
public class Malade implements java.lang.Comparable
{
String nom;
int nbIntox;
Malade (String nom, int nbIntox) {
this.nom = nom;
this.nbIntox = nbIntox;
}
public int compareTo(Object o)
{
int nombre1 = ((Malade) o).nbIntox;
int nombre2 = this.nbIntox;
if (nombre1 > nombre2) return -1;
else if(nombre1 == nombre2) return 0;
else return 1;
}
}
je veut faire le tri dans cette methode:
static void afficherMalades (List liste)
{
for (int i = 0; i < liste.size(); i++)
{
Malade p = (Malade) liste.get(i);
System.out.println(p);
}
}
A voir également:
- Trier des valeurs en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Excel trier par ordre croissant chiffre - Guide
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
2 réponses
Tu dois spécifier les types des classes template !
Tu auras donc Comparable<Malade> et List<Malade>
La confiance n'exclut pas le contrôle
Tu auras donc Comparable<Malade> et List<Malade>
import java.util.Collections; import java.util.List; public class Malade implements java.lang.Comparable<Malade> { protected String nom; protected int nbIntox; public Malade (String nom, int nbIntox) { this.nom = nom; this.nbIntox = nbIntox; } public int compareTo(Malade m) { if (nbIntox==m.nbIntox) return nom.compareTo(m.nom); else return nbIntox-m.nbIntox; } public static void afficherMalades(List<Malade> liste) { Collections.sort(liste); for (Malade m : liste) { System.out.println(m); } } }
La confiance n'exclut pas le contrôle
bonjour la solution que vous m'avez donné marche bien mais j'aimerais aussi savoir comment fair le trie par ordre alphabetique des nom.Merci de m'aider
Dans, ce cas, soit tu changes la méthode compareTo, soit tu implémentes un Comparator que tu passes en paramètre de sort
On peut éventuellement surcharger la méthode pour ne pas trier la collection lorsqu'on est sûr qu'elle est déjà triée (implémentant SortedSet par exemple) :