Maison > Questions et réponses > le corps du texte
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 ?
天蓬老师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é.
typecho2017-06-14 10:54:58
Créez une classe de base, A et B l'étendent
Créer une interface, des implémentations A et B
Créez une liste<Objet> puis triez-la. Le type doit être forcé dans le comparateur
Obtenez une classe Wrapper, enveloppez A et B, puis mettez-les dans la liste et triez-les