J'ai une liste qui contient des hashmaps avec plusieurs paires clé/valeur. L'une des paires clé/valeur contient la clé "Order" et la valeur est un int. Comment puis-je trier l'arraylist selon la clé "Order" des hashmaps qu'il contient s'il vous plait? (Je peux le faire pour une valeur de chaîne, mais pas une valeur int)Trier ArrayList avec hashmap avec des valeurs int
-1
A
Répondre
4
Quelque chose comme ça le ferait:
List<Map<String, Integer>> list = new ArrayList<Map<String, Integer>>();
Collections.sort(list, new Comparator<Map<String, Integer>>() {
final static String COMPARE_KEY = "Order";
@Override
public int compare(Map<String, Integer> lhs, Map<String, Integer> rhs) {
Integer v1 = lhs.get(COMPARE_KEY);
Integer v2 = rhs.get(COMPARE_KEY);
return v1 < v2 ? -1 : v1 > v2 ? 1 : 0;
}
});
0
Une façon je peux penser est de garder l'HashMap
comme un attribut d'une classe personnalisée et créer le List
comme List<CustomClass>
. Vous pouvez ensuite laisser votre CustomClass
implémenter Comparable
ou avoir un Comparator
pour ce tri personnalisé. Il sera plus facile de trier dans ce cas.
Ou définir un Comparator
qui compare deux objets Map
et l'utiliser dans Collections.sort()
.
public class MyCustomComparator implements Comparator<Map <String, Integer>>
{
@Override
public int compare (Map<String, Integer> o1, Map<String, Integer> o2)
{
return o1.get("Order").compareTo(o2.get("Order"));
}
}
-1
Vous avez besoin d'un comparateur personnalisé comme celui-ci:
public class MyComparator implements Comparator<HashMap<String, ?>> {
public compare(HashMap<String, ?> o1, HashMap<String, ?> o2) {
return o1.get("Order").toString().compareTo(o2.get("Order").toString());
}
}
vous puis trier votre liste à l'aide:
Collections.sort(myList, new MyComparator());
Questions connexes
- 1. Java HashMap avec arraylist
- 2. Comment trier arraylist hashmap dans Android?
- 3. comment trier hashmap par des valeurs?
- 4. Trier ArrayList avec des heures en Java
- 5. initialisation hashmap avec des valeurs préexistantes?
- 6. Comment ajouter des valeurs HashMap dans un ArrayList
- 7. Problème avec les valeurs HashMap()
- 8. Java - ArrayList avec plusieurs int par index
- 9. Java Mapping ArrayList à HashMap
- 10. Tri d'un hashmap avec entier comme la clé et ArrayList
- 11. HashMap de ArrayList provoquant nullpointerexception
- 12. Comment trier arraylist hasmap
- 13. ArrayList HashMap est indéfini
- 14. ArrayList et HashMap servlet
- 15. Mettez Hashmap dans Arraylist <HashMap>
- 16. Affichage des données de Arraylist of Hashmap
- 17. Comment trier des valeurs dans hashmap en utilisant treeset?
- 18. HashMap, le tri des valeurs
- 19. Trier ArrayList avec Lambda dans Java 8
- 20. ArrayList à Hashmap Conversion
- 21. ArrayList d'objets dans un hashmap
- 22. ArrayList avec plusieurs valeurs C#
- 23. Conversion ArrayList à hashmap
- 24. valeurs Arraylist ne pas venir dans un HashMap
- 25. Insérer de ArrayList à HashMap
- 26. Trier HashMap qui correspond à arraylist fonction de la taille ArrayList
- 27. Utiliser les valeurs de HashMap uniquement avec la touche droite
- 28. HashMap accéder à même ArrayList
- 29. hashmap avec une clé et plusieurs valeurs dans Jtable?
- 30. Recherche de valeurs à partir d'une ArrayList d'ints dans une ArrayList d'objets avec des champs int sans LINQ
@Downvoter, s'il vous plaît commenter – njzk2