Bonjour tour le monde,

je suis devant un pb un peu complexe.

J'ai des fichiers txt en entrée contient 80 milles lignes de données.

Parmi ces lignes de données, chacun est un produit ou un sous-produit appartenant à un produit et qui le suivent.
Il y a à peu près 10000 produits en total.
exemple sur cette colonne "Nom"
ex:
nom
Produit1
ss-produit1
ss-produit2
ss-produit3
ss-produit4
Produit2
ss-produit3
ss-produit1
Produit3
ss-produit6
ss-produit8
ss-produit1

Mon but est de prendre cette colonne depuis le fichier txt, faire le calcul de corrélation possible de tous les ss-produits.

ça veut dire dans mon fichier de sortie final

je dois avoir la couple"ss-produit1,ss-produit2" qui sont présents ds produit1
je dois avoir la couple"ss-produit6,ss-produit8" qui sont présents ds produit3

Le résultat final contient à peu près 60 milles combinaisons possibles .


Gentlemen, si vous avez bien compris ce pb, je commence donc à vous raconter ma solution actuelle:

Je lis d'abord le fichier txt, et mettre les infos de la colonne "nom" ds une collection, 80000, ultra rapide.

après, qd j'identifie le début d'un produit et la fin, je fais donc, une boucle de début de ses ss produit à la fin de ses ss-produit, pour coupler, et verifier si la coupe n'est pas ds ma collection finale à retourner, j'ajoute ds la collection(J'applique un peu l'idée de tri d'insertion ici et faire l'élimination de doublons en même temps)

Mais le pb est qu'au bout d'avoir + de 6000 couples, ds la collection, l'ajout devient de + en + lent, parce que pour ajouter un truc, je suis obligé de parcourir 6000 trucs, imagines après ce sera encore plus lent.

Mon souci est que la collection ne peuvent pas ajouter un élément à sont milieu, si ceci devient possible, dès le début, je peux mettre la collection ds bon ordre.
et faire une condition si > i-1 and < i then insert between, je pense ceci permet de progresser bcp sur la performance.

Il existe un object permettant d'ajouter des élts au milieu?


Je suis désolé, mais les méthodes de la collection est trop faibles, seulement 4 méthodes disponible...

Si vous avez des idées, n'hésitez pas.

Merci bien tout le monde!!