Im essayant de trier une arraylist d'objets par une valeur particulière dans l'objet. Quelle serait la meilleure approche pour faire une telle chose. Dois-je utiliser Collections.sort () avec une sorte de comparateur?
Im essayant de trier une liste d'objets par une valeur flottante qu'ils détiennent dans l'une des variables.
EDIT: C'est ce que j'ai jusqu'à présent:
public class CustomComparator implements Comparator<Marker> {
@Override
public int compare(Mark o1, Mark o2) {
return o1.getDistance().compareTo(o2.getDistance());
}
}
les états d'erreur: Impossible d'appeler compareTo (double) sur le type primitif double.
Est-ce parce qu'un comparateur ne peut pas renvoyer autre chose qu'un certain type?
java
android
sorting
collections
comparator
James andresakis
la source
la source
Réponses:
Vous devez utiliser Comparable au lieu d'un Comparator si vous recherchez un tri par défaut.
Voir ici, cela peut être utile - Quand une classe devrait-elle être comparable et / ou comparateur?
Essaye ça -
la source
Suivez ce code pour trier n'importe quel ArrayList
la source
Je pense que cela t'aidera mieux
la source
Désormais pas besoin de boxe (c'est-à-dire pas besoin de créer
OBJECT
utilisant un nouvel opérateur utiliser valueOf insted avec compareTo de Collections.Sort ..)1) Pour l'ordre croissant
1) Pour l'ordre décroissant
la source
«Android-java» n'est ici en aucun cas différent de «Java normal», donc oui
Collections.sort()
serait une bonne approche.la source
Comment utiliser:
la source
Vous pouvez comparer deux String en utilisant ceci.
Et maintenant, créez une classe ContactData.
Ici contactsList est:
la source
Soit vous créez un
Comparator
qui peut comparer vos objets, soit si ce sont toutes des instances de la même classe, vous pouvez faire en sorte que cette classe soit implémentéeComparable
. Vous pouvez ensuite utiliser Collections.sort () pour effectuer le tri réel.la source
compareTo()
méthode-est l'endroit où vous faites la comparaison. Un peu de googler a donné plusieurs exemples détaillés sur la façon de l'utiliser, en voici l'un: javadeveloper.co.in/java-example/java-comparable-example.htmlClasse de modèle:
Maintenant, définissez les données dans ArrayList
Trier maintenant ArrayList
Résumé: il triera vos données par date
la source
Pour Kotlin , vous pouvez utiliser cette fonction
et appelez-le simplement dans votre
activity
oufragment
parla source
J'ai une liste qui affiche les informations sur tous les clients que je trie le nom des clients à l'aide de cette classe de comparateur personnalisée. Ils ont un peu plus de lettres en plus des lettres anglaises que je gère avec cet ensemble Force (Collator.SECONDARY)
la source
C'est très facile pour Kotlin!
listToBeSorted.sortBy { it.distance }
la source