slt
je voudrais s'il existe un moyen java pour tester si une ligne se répète ou non au niveau d'un fichier texte. si oui dite moi quel ce moyen
slt
je voudrais s'il existe un moyen java pour tester si une ligne se répète ou non au niveau d'un fichier texte. si oui dite moi quel ce moyen
Bonjour,
Il faut utiliser une répétition de motif.
Le mieux est de :
- charger le fichier texte sous forme de ligne (List<String>)
(option) : trier les élements de façon à aller plus vite, si le fichier peux être gros
- parcourir la liste avec chaque élément et appliquer un equals(). Je te conseil de faire ton propre .equals(), car tu peux traiter les caractères un à un et arrêter dès qu'il y a une différence (je sais pas si String.equals() fait cela).
Il ya aussi d'autre méthodes, avec les Map, et utiliser les la propriété du 'une valeur pour une clef'.
Cela dépend du volume de lignes à traiter.
Si tu as peu de code, fait nous partager.
vous savez c'est exactement ce que g fait , un ArrayList ou chaque champs contient une ligne mais je crains des lignes volumineuses
merci et précisez les maps
L'idée c'est d'exploiter l'uniciter d'un objet pour une clef donnée :
- générer une clef unique pour chaque ligne lu (type MD5 ou simplement la ligne elle-même)
- vérifier si la Map posséde un objet avec le clef
- si oui : la ligne existe (on peut imaginer alors ranger le ligne dans une autre map pour faire les traitements)
- si non : ajouter le ligne avec la clef dans la Map
Vider la Map de comaraison à la fin du fichier.
Tu peux même optimiser en utilisant un TreeMap, les lignes sont classées dans l'order, et donc rapide à comparer... Mais pour cela il faut écrire ton implémentation de compareTo()... de façon à lire TAND QUE même caractère, et arrêter DES QUE différent (tu gagnes alors le temps de compraison qui suist et qui et inutile).
Partager