Maison  >  Questions et réponses  >  le corps du texte

Comment trier des objets de différentes classes en Java

Supposons que deux classes A et B aient une date d'attribut commune. Je souhaite trier les deux List<A> et List<B>

La méthode que je connais consiste à écrire une classe de base, puis A et B héritent de cette classe de base, puis à appeler Collections.sort() pour trier.

Existe-t-il une meilleure façon, ou utiliser la réflexion pour écrire une méthode similaire, ou existe-t-il une bibliothèque prête à l'emploi qui peut être utilisée ?

学习ing学习ing2707 Il y a quelques jours830

répondre à tous(3)je répondrai

  • 天蓬老师

    天蓬老师2017-06-14 10:54:58

    Utiliser la méthode que vous avez mentionnée ci-dessus est une meilleure méthode. 1. Vous pouvez utiliser l'API fournie par Java lui-même pour réduire la quantité de code. 2. La méthode ci-dessus est également assez bonne en termes de style de code.
    Une autre idée est d'extraire les dates de chaque classe A et B et de les associer aux objets A et B eux-mêmes. Par exemple, implémenter une classe Index. Il y a deux attributs dans Index, la date et les références aux objets de classe A et B. ou id, chaque objet de classe A et B est associé à un objet Index, puis les objets Index sont triés, puis l'objet correspondant à A ou B est trouvé via l'id, dans le même ordre que l'objet index, c'est-à-dire , trié.

    répondre
    0
  • 欧阳克

    欧阳克2017-06-14 10:54:58

    list.sort((l1,l2) -> l1.getDate().compareTo(l2.getDate()));

    répondre
    0
  • typecho

    typecho2017-06-14 10:54:58

    1. Créez une classe de base, A et B l'étendent

    2. Créer une interface, des implémentations A et B

    3. Créez une liste<Objet> puis triez-la. Le type doit être forcé dans le comparateur

    4. .
    5. Obtenez une classe Wrapper, enveloppez A et B, puis mettez-les dans la liste et triez-les

    répondre
    0
  • Annulerrépondre