Comment utiliser des Collections.sort() en Java?
J'ai reçu un objet Recipe
qui implémente Comparable<Recipe>
:
public int compareTo(Recipe otherRecipe) {
return this.inputRecipeName.compareTo(otherRecipe.inputRecipeName);
}
Je l'ai fait, donc je suis en mesure de trier les List
par ordre alphabétique dans la méthode suivante:
public static Collection<Recipe> getRecipes(){
List<Recipe> recipes = new ArrayList<Recipe>(RECIPE_MAP.values());
Collections.sort(recipes);
return recipes;
}
Mais maintenant, dans une autre méthode, qui permet de l'appeler getRecipesSort()
, je veux la même liste, mais numériquement, la comparaison d'une variable qui contient leur pièce d'identité. Pour aggraver les choses, le champ ID est de type String
.
Comment puis-je utiliser des Collections.sort() pour effectuer le trie en Java?
- docs.oracle.com/javase/tutorial/collections/interfaces/...
- Je suis désolé si je n'ai pas de répondre à vos besoins pour y répondre. Je sais où la documentation, je suis juste à la recherche de solutions créatives, depuis je n'arrive pas à en trouver. Vers le bas-droit de vote était juste purement ridicule mais bon, la frustration ne peut pas être expliqué.
Vous devez vous connecter pour publier un commentaire.
Utiliser cette méthode Les Collections.de tri(Liste,Comparateur) . Mettre en œuvre un Comparateur et de le passer à
Collections.sort().
Puis utilisez le
Comparator
commeLa réponse donnée par NINCOMPOOP peut être rendu plus simple en utilisant les Expressions Lambda:
Collections.sort(recipes, (Recipe r1, Recipe r2) ->
r1.getID().compareTo(r2.getID()));
Également introduit après Java 8 est le comparateur des méthodes de construction dans le Comparateur interface. À l'aide de ces informations, on peut réduire encore ce à 1:
1 Bloch, J. Efficace Java (3rd Édition). 2018. L'article 42, p. 194.
Créer un comparateur qui accepte le mode de comparaison dans son constructeur et passer les différents modes de transport pour différents scénarios en fonction de votre exigence
}
Fait pour les nombres vous avez besoin de traiter séparément de vérifier ci-dessous
Utiliser la méthode qui accepte un
Comparator
quand vous voulez trier quelque chose d'autre que l'ordre naturel.Les Collections.de tri(Liste, Comparateur)
Trier les ménagères de hashmap dans l'ordre croissant.