Menu

Probleme tri [Résolu]

- - Dernière réponse :  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
Afficher la suite 

Votre réponse

1 réponse

Messages postés
15918
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
20 janvier 2019
3630
0
Merci
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>
-
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..
Commenter la réponse de KX