Hello,
Voilà mon problème :
J'ai une boucle sur environ 1'000'000 de comptes.
Chaque compte a un propriétaire.
Il y'a ~200'000 propriétaires.
A chaque itération je dois savoir si le propriétaire du compte a déjà été traité ou non pour agir en fonction.
Pour celà, je mets l'identifiant du propriétaire dans une structure de données garantissant l'unicité.
Il me suffit donc de tester si ma structure contient déjà l'identifiant courant pour savoir si le propriétaire a déjà été traité.
Un peut de code valant mieux qu'on long discours...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Collection<Compte> listeComptes = new HashSet<Compte>(); // ~ 1'000'000 Collection<String> listeDejaTraite = new HashSet<String>() ; // ~ 200'000 for(Compte compte : listeComptes) { if(listeDejaTraite.contains(compte.getProprio())) { //traitement du compte si son proprio a déjà été traité } else { listeDejaTraite.add(compte.getProprio()) ; //traitement du compte si son proprio a pas encore été traité } }
Ma question est donc la suivante :
Quelle est la structure de données la plus adaptée pour ma listeDejaTraite ?!?
Et au passage, y'aurait-il un meilleur moyen de savoir si le proprio a déjà été traité ou non ? (sachant qu'on ne peut pas jouer sur l'ordre de tri de la listeComptes)
Merci d'avance
Partager