Performance de code

Messages postés
63
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
18 juillet 2008
- - Dernière réponse : nhervagault
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
- 21 janv. 2008 à 14:22
Bonjour,

<li>J'ai un fichier texte de 1200 lignes que je parcours ligne par ligne.</li><li>J'ai des phrases ( 2 ou 3 mots) qui sont interdites.</li><li>Je dois copier le fichier texte dans un autre sans les phrases interdites.</li>
2 solutions :
1°) je fais une boucle qui parcours mon tableau "interdit" (contenant les phrases interdites)  à chaque ligne lues.

2°) je fais une succession de if ... then à chaque ligne lues.

le code est plus facile à gérer pour la première solution mais sans doute moins rapide.

Que feriez-vous?
Afficher la suite 

2 réponses

Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
16
0
Merci
Bonjour,

Pourquoi moins rapide ? car tu as un tableau et tu boucles sur ce tableau ? tu sentiras pas la différence à côté d'une comparaison de String, et puis au moins ton code sera lisible et maintenable ...

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
Commenter la réponse de jesusonline
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
21
0
Merci
Salut

Tu as d'autres solutions a étudiée

Tu mets tes mots dans une Arraylist ou encore mieux une List<String>
et après tu testes avec un
malisteinterdite.contains(monmotatester) et si false tu ne l'ecrit pas dans le fichier de sortie.

Encore plus rapide normalement, tu utilises
1-> Remplir avec la liste des mots interditsun dictionnary<String> la clé ton mot et ta valeur null
2-> Test mot interdit
et tu fais un ContainsKey(motatester)
normalement cette méthode doit être plus rapide car les dictionnaires utilise un temps quasi constant pour trouver un élement dans une liste.

Bon courage
Commenter la réponse de nhervagault