Nicky:
Je suis en train de trier la liste des chaînes à travers mon propre comparateur. J'ai vu le modèle ci-dessous pour la liste des développeurs.
//lambda
listDevs.sort((Developer o1, Developer o2)->o1.getAge()-o2.getAge());
Mon code: (cela donne-moi Erreur de compilation)
List<String> s = new ArrayList<>();
Collections.sort(s, (String a, String b)-> {
return a.length() > b.length()
});
Ce code ne compile. aider quelqu'un peut me ce qui ne va pas avec ce que je fais?
Dead Pool :
Arrays.sort
est utilisé pour le tri Arrays
non pour les Collection
objets, utilisez Collections.sort de triArrayList
Collections.sort(s,(a,b)->a.length()-b.length());
Et l' expression lambda correspondant est erroné (String a,String b)-> a.length() > b.length()
qui renvoie la valeur booléenne. Où Comparator.compare doit retourner la int
valeur. Et aussi le type des paramètres peut être explicitement déclarée ou il peut être déduit du contexte.
int compare(T o1, T o2)
Vous pouvez également utiliser list.sort
s.sort((a,b)->a.length()-b.length());