0
votes

Collections.sort () Erreur lors de la triant ArrayList

J'essaie de trier par noms d'arraylist Nom, mais je ne pouvais pas résoudre le problème. . . . . .

Quelqu'un pourrait-il aider?

Erreur à Case 4: Collections.sort (contact);

Erreur "Type requis: Liste fournie: Liste Raison: Non l'instance (s) de type variable (s) t (s) t (s) telle que les données sont conformes à Comparable "

Code ci-dessous fonctionne bien sans trier xxx


1 commentaires

Votre classe DATA ne met pas en œuvre comparable


6 Réponses :


0
votes

Votre Caractéristiques de la classe Vous implémentez comparable, consultez ici:

https://www.geeksforgeeks.org/comparable-vs-comparator-in-java/ xxx


1 commentaires

C'était une faute de frappe que j'ai changée en données



2
votes

Vous avez 2 options, que ce soit dans la fonction de tri comparable ou fournissant un comparateur à la fonction de tri, c'est-à-dire xxx

ou xxx


0 commentaires

3
votes

Je ne suis pas tout à fait sûr, mais je pense que vous devez le faire (dans votre cas 4):

Collections.sort(contact, new Comparator<Data>() {
    @Override
    public int compare(Data contact1, Data contact2) {
        return contact1.getFirstName().compareTo(contact2.getFirstName());
    }
});


6 commentaires

Merci mon ami!! Votre solution fonctionne aussi bien


Heureux d'aider :)


Frère que diriez-vous de collections.replaceall (contact, 8,7); même problème que ci-dessus, remplacez tout élément "8" par "7"? Je suis confronté à de nouvelles difficultés. Pourriez-vous aider?


@ User75432132 oui sûr. Dis-moi juste ce qui est l'élément "8"?


Vous ne pouvez pas remplacer la méthode de collections car elles sont statiques et ne peuvent pas être étendues, mais pour votre objectif, vous pouvez créer la méthode suivante dans votre classe de destination. Statique privé Statique RevidePhoneDigit (Liste ContactList, String OldValue, String NewValue) {pour (Data Contact: ContactList) {contact.homephone = contact.homephone.replaceall (OldValue, NewValue); }}


C'est vrai @shehroazaslam



2
votes

Utilisez de cette manière Contact.Sort (comparateur.comparing (Data :: getfirstName));


0 commentaires

-1
votes

transmettez un comparateur dans la méthode de tri ou effectuez une classe de données Mettre en œuvre une interface comparable et mettez en œuvre CareTo ()

@giorgosdev a donné un exemple dans lequel la classe de données devrait mettre en œuvre une interface comparable.


0 commentaires

-1
votes

soit implémenter comparable dans la classe de données ou le comparateur de réussite dans la méthode de tri. Exemple de collections.sort (contact, comparator.comParting (Data :: GetFirstName));


0 commentaires