Bonjour,
J'ai un petit problème de programmation à vous poser.
J'ai un ensemble d'éléments que je récupère dans une liste et je voudrais supprimer les doublons, définit d'après mes critères.
Dans un monde parfait voila comment je l'aurais codé :
Evidemment ca ne fonctionne pas, modifier la liste pendant que je l’itère c'est un peu barbare.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 List<DBObject> items = getItems().toArray(); for (DBObject item1 : items) { for (DBObject item2 : items) { if(looksLike(item1, item2)) { items.remove(item2); } } }
Ils y a plusieurs solutions simples mais la liste est très grosse (jusqu'à plusieurs millions d'éléments) et j'aimerai trouvé une solution qui respecte quelques critères :
- Pas de copie de liste
- Pas de items.get(i)
- Le moins de tours de boucle possible (ne pas faire la vérification 2 fois)
Est ce possible ?
Partager