Comment trouver max dans une liste de tuples?
J'ai une liste de tuples:
val arr = List(('a',10),('b',2),('c',3))
Comment trouver le n-uplet avec le max de clé ou valeur max?
La bonne réponse devrait être (c, 3)
pour la touche max lexicographiquement ou ('a', 10)
pour la valeur max.
source d'informationauteur Shakti
Vous devez vous connecter pour publier un commentaire.
Easy-peasy:
Donc, fondamentalement, vous pouvez fournir à
List[T]
toute fonctionT => B
(oùB
peuvent être commandés, commeInt
ouString
par exemple) qui sera utilisé pour trouver le maximum.Sans doute @om-nom-nom fourni une description concise de la réponse correcte. Cependant, il va lever une exception si la liste est vide.
EDIT #2 Donné mon premier montage, il est intéressant de ré-écrire mon origine, imparfait réponse:
Note: je devine que scalaz serait vous permettent d'utiliser un plus générique
Num
-comme le type au lieu deInt
mais je n'ai pas travaillé avec elle à tous les.Tests
MODIFIER Pour choisir une valeur de départ, j'ai décidé de modifier ma réponse après avoir parlé avec @DustinGetz.
Cueillette
Int.MinValue
peut-être pas un bon choix car il est dépendant du système d'exploitation/système sur lequel l'application est en cours d'exécution.Je dirais que le premier élément de la liste doit être la valeur de départ. Cependant, il y a un potentiel exception d'exécution si la liste est vide.
Veuillez jeter un oeil à ce post pour plus de discussion - https://stackoverflow.com/a/23184020/409976.