Salut,
j'aimerais pouvoir comparer 2 ArrayList d'objets et pouvoir placer dans un 3ème les différences qu'il y a entre les 2 premiers. Est-ce possible?
Version imprimable
Salut,
j'aimerais pouvoir comparer 2 ArrayList d'objets et pouvoir placer dans un 3ème les différences qu'il y a entre les 2 premiers. Est-ce possible?
Salut,
ça irait ? (il y a peut-être plus simple, je n'ai pas testé ce code)Code:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Tu veux les différences (la différence ensembliste) entre le 1er et le 2e, ou entre le 2e et le 1er?Citation:
Envoyé par Empty_body
Pour le 1er moins le 2e :
Code:
2
Bien sur que c'est possible; Il te suffit parcourir une ArrayList et de regarder si ton object est present ou non dans ta 2ieme ArrayList. En fonction du resultat tu met ou non l'object dans l'arrayList 3. Et tu supprimes l'object s'il est present dans l'arraylist 2. Et a la fin tu met ce qui reste de l'arraylist 2 dans la 3.
A mon avis, il veut mettre dans une 3ème ArrayList :
- Les éléments présents dans la liste 1 mais pas dans la liste 2.
- Les éléments présents dans la liste 2 mais pas dans la liste 1.
J'ai eu à rencontrer le même problème un jour. Je remplissais une ComboBox dans un formulaire de modification. Les choix de la comboBox étaient des champs d'une colonne d'une de mes tables.
A la validation de la modification, je devais donc comparer les éléments de l'ancienne et de la nouvelle comboBox. Comme l'utilisateur pouvait ajouter ou supprimer des éléments dans la comboBox, j'étais donc confronté au même problème à savoir :
- je devais regarder les éléments communs entre l'ancienne et la nouvelle combo.
- si des valeurs étaient présentes dans l'ancienne et plus dans la nouvelle, je devais retirer l'enregistrement contenant cette valeur dans la base de données.
- si des valeurs étaient présentes dans la nouvelle et pas dans l'ancienne, je devais ajouter un enregistrement dans la base de données avec cette nouvelle valeur.
Pour me simplifier la tâche, j'avais fait un truc pas très propre mais bon dans l'urgence j'ai improvisé. Je sélectionnais tous les enregistrements dans la base de données qui contenaient les valeurs de l'ancienne combo, les supprimer et rajouter toutes les valeurs de la nouvelle combo, quitte à recréer des enregistrements qui existaient déjà.
Voilà j'espère avoir bien compris ton problème ;)
En faite c'est assez simple;
Tu as ta premiere ArrayList a et ta deuxieme b;
Tu prend une ArrayList temporaire temp qui contient tout les enregistrements de a;
Tu fais :
Code:
2
3
4
5
6
7
8
9
10
Petite remarque : il faut que la méthode equals soit défini sur ton Object
Merci...