J'ai un List<Map<String, String>>
. Une valeur particulière de la carte est une entrée numérique avec des décimales. Je souhaite trier la liste par ordre décroissant en fonction de cette valeur particulière de la carte.Tri d'une liste de Map <String, String> basée sur une valeur numérique particulière
par exemple:
List<Map<String, String>> foo= new ArrayList<Map<String, String>>();
Map<String, String> bar1 = new HashMap<>();
Map<String, String> bar2 = new HashMap<>();
Map<String, String> bar3 = new HashMap<>();
bar1.put("name", "abc");
bar1.put("score", "72.5");
bar1.put("sex", "male");
foo.add(bar1);
bar2.put("name", "pqr");
bar2.put("score", "98.7");
bar2.put("sex", "female");
foo.add(bar2);
bar3.put("name", "xyz");
bar3.put("score", "100.0");
bar3.put("sex", "male");
foo.add(bar3);
.
.
.
.
et ainsi de suite
Je veux trier les List<Map<String, String>>
par ordre décroissant de telle sorte que la carte contenant le score de 100,0 est sur le dessus.
J'ai essayé
Collections.sort(list, new Comparator<Map.Entry<K, V>>() {
@Override
public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2) {
return (o1.getValue()).compareTo(o2.getValue());
}
});
mais le « V » est une chaîne ici, alors que j'ai besoin d'être trié comme un flotteur. Toute aide serait appréciée.
double possible de [trier une carte par des valeurs (Java)] (https://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java) –
Flown
Comment est- ceci supposé fonctionner si la valeur n'a pas pu être analysée à un flotteur? –
@Flown Je peux me tromper, mais j'ai déjà essayé cette solution. Mon problème est avec le typage de la chaîne pour flotter ou pour être clair, en triant une carte avec une valeur flottante spécifique basée sur la valeur float. –
cppnoob