Probleme tri

Résolu/Fermé
jesuisunpseudo - 9 janv. 2019 à 14:59
 jesuisunpseudo - 9 janv. 2019 à 18:28
Bonjour,

J'ai un problème de tri, je vous explique.

J'ai une classe Coureur avec une
Map<CheckPoint, Duration>
ou CheckPoint est un énuméré.

Dans une autre classe je dois implémenté cette méthode en 1 seule instruction.

Ci-dessous j'ai effectué une parti de l'instruction.

Le probleme que je ne comprend pas est comment trié par Duration ? Comment accéder au Duration du checkpoint donné en paramètre?

J'ai bien un getter dans Coureur mais les méthode n'apparaisant pas ou il ne veut pas compiler quand j'éssaye par exemple la méthode sorted dans mon stream.

.sorted(Comparator.comparing(c->c.getDuraration(checkpoint));


Je pense que s'est une histoire de Comparable ou je ne sais quoi mais je ne comprend pas très bien.

	/*
	 * La methode renvoie la liste des coureurs classes par temps de passage au
	 * checkpoint fourni en parametre. Cette methode doit s'inscrire avec une
	 * stream (1 seule instruction).
	 */
	public List<Coureur> lesCoureursClasses(CheckPoint checkPoint) {
		return coureurs.values().stream().filter(c -> c.isCheckPointPresent(checkPoint)).collect(Collectors.toList());
	}


J'éspère réussi à être clair..

Merci à celui qui sera m'éclairer.




Configuration: Windows / Chrome 71.0.3578.98

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
9 janv. 2019 à 18:01
Bonjour,

Il faudrait voir ta classe Coureur pour reproduire, notamment le type de Duration.
Mais
.sorted(Comparator.comparing(c -> c.getDuraration(checkpoint))
devrait être correct.
Sous réserve bien sûr que la méthode s'appelle getDuraration (faute de frappe ?) et que Duration implémente l'interface Comparable<Duration>
0
jesuisunpseudo
9 janv. 2019 à 18:28
En réalité je viens de trouver le problème. je me suis fait avoir par éclipse qui ne proposait pas mes méthodes et donc je n'avait pas écrit l'instruction au complet..
0