-
Synchro liste objet
Bonjour,
Je dispose de deux listes d'objets. Je cherche à ce que les deux listes différentes passées en paramètres soient identiques en sortie de ma méthode selon des règles de gestion que je définie.
Exemple simple :
Disons que mes listes contienent des objets de type "voiture". Et définissons une voiture comme un objet ayant une couleur et un nombre de passagers.
Je dispose donc de mes deux listes :
Voiture v1 = new Voiture("bleu",4);
Voiture v2 = new Voiture("rouge",2);
Voiture v3 = new Voiture("rouge",2);
v1,v2 et v3 sont dans l' ArrayList list1.
Voiture v4 = new Voiture("bleu",1);
Voiture v5 = new Voiture("rouge",5);
v4,v5 sont dans l' ArrayList list2.
Etablissons maintenant les règles de gestion suivantes :
- Si une liste possède une nouvelle voiture supplémentaire elle devra être également dans l'autre liste
- Si une voiture est présente dans chacune des deux listes mais que ce sont les couleurs qui différent, c'est la list1 qui fait foi.
- Si une voiture est présente dans chacune des deux listes mais que ce sont le nombre de passager qui différent, c'est la list2 qui fait foi.
C'est assez simple à faire en faisant des boucles et en parcourant tous les objets dans chacuns des cas mais cela me semble beaucoup trop lourd en traitement.
Existe t'il une solution plus simple ?
Merci d'avance.
-
c'est plus une question d'algorithmique que de java. Tu peux éventuellement trier tes listes par couleur avant le traitement, pour limiter tes comparaison. Par contre tes critères me semblent bizzare: Comment tu détermine qu'une voiture est "présente dans les deux liste mais de couleur différente"? A part la taille et la couleur t'as aucun autre critère de comparaison. Enfin c'est toi qui gère, mais j'ai pas du tout compris ce que tu cherche à faire ;)
-
Sinon, tu peux les stocker dans un hashSet, si tu n'as pas besoin qu'ils soient ordonnées.
Ainsi, pour voir et avoir si une voiture d'une liste est dans l'autre, c'est quasi instantané.