Comment trier des objets de différentes classes en Java
学习ing
学习ing 2017-06-14 10:52:58
0
3
871

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
学习ing

répondre à tous(3)
Peter_Zhu

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é.

学霸
list.sort((l1,l2) -> l1.getDate().compareTo(l2.getDate()));
typecho
  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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal