IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Convertir Map en TreeMap


Sujet :

Collection et Stream Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Formation Developpeur JAVA
    Inscrit en
    Décembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Formation Developpeur JAVA

    Informations forums :
    Inscription : Décembre 2020
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Convertir Map en TreeMap
    Bonjour à tous,


    Je débute dans Java (moins d'un mois) et je n'arrive pas a trouver la solution malgré mes multiples recherche à ce sujet et j'ai un petit soucis de compréhension, je vais mettre le code ici et tenter d'expliquer mon problème.

    Cette classe sert à lire un fichier txt qui contient une liste de symptômes, avec plusieurs fois le même symptômes à l'intérieur. Le but étend de récupérer les symptômes sur la liste et de compter le nombre de récurrences et de le classer par ordre alphabétique.

    Voici mon code qui me permet de traiter la demande de mon prof :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     package Projet2;
     
    import java.io.FileWriter;
    import java.io.IOException;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
     
    public class AnalyticsCounterOK {
     
    	public static void main(String[] args) throws IOException {
     
    		try {
     
    			// read file symptoms
    			List<String> lines = Files.readAllLines(Paths.get("src/symptoms.txt"));
     
    			Map<String, Integer> symptomOccurrence = new HashMap<>();
    			for (String line : lines) {
     
    				if (symptomOccurrence.containsKey(line)) {
    					symptomOccurrence.put(line, symptomOccurrence.get(line) + 1);
    				} else {
    					symptomOccurrence.put(line, 1);
    				}
    			}
    //			System.out.println(symptomOccurrence.toString());
     
    			symptomOccurrence.entrySet().stream().sorted(Map.Entry.<String, Integer>comparingByKey())
    					.forEach(System.out::println);
     
    			FileWriter writer = new FileWriter("src/result.out");
    			writer.write(symptomOccurrence.toString());
     
    			writer.close();
     
    		} catch (IOException e) {
    			e.printStackTrace();
     
    		}
    	}
    }
    Après retour de mon prof, il m'a fait 2 remarques
    1°) Le fichier result.out n'affiche pas les données verticalement contrairement à la console et à la demande du sujet.
    2°) Il veut une mise en page type Objet avec class, main, etc...


    Donc je reprends mon code

    J'ai une première classe, SymptomReader1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    package Projet2.Test1;
     
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
     
    /**
     * Simple brute force implementation
     *
     */
    public class SymptomReader1 implements ISymptomReader1 {
    	// propieties
    	private String filepath; // attributs
     
    	public SymptomReader1(String filePath) {
    		this.filepath = filePath;
    	}
     
    	// methode
    	public Map<String, Integer> getSymptomReader() { // methode d'implementation
     
    		// creation d un
    		Map<String, Integer> symptomReader = new HashMap<>(); // initialisation d'une nouvelle Map
     
    		if (filepath != null) {
    			try {
    				BufferedReader reader = new BufferedReader(new FileReader(filepath));
    				String line = reader.readLine();
     
    				while (line != null) {
    					line = reader.readLine();
    					if (symptomReader.containsKey(line)) {
    						symptomReader.put(line, symptomReader.get(line) + 1);
    					} else {
    						symptomReader.put(line, 1);
    					}
    				}
    				reader.close();
     
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    		return symptomReader;
    	}
     
    }

    J'ai ensuite mon Main

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    package Projet2.Test1;
     
    import java.io.IOException;
     
    public class AnalyticsCounter1 {
     
    	public static void main(String[] args) throws IOException {
     
    		SymptomReader1 sympReader = new SymptomReader1("src/symptoms.txt");
     
    		System.out.println(sympReader.getSymptomReader());
    	}
    }
    Qui me permet de lancer mon programme en y spécifiant le fichier txt à traiter.

    J'ai 2 problèmes sur lequel je suis coincé depuis plusieurs jours et que malgré la consultation de divers forum, je n'arrive pas a traiter les 2 points suivants.

    1°) Mon premier problème est que lorsque je lance mon programme, voici ce qu'affiche la console
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    null=1, tremor=4, dizziness=5, blindness=1, constricted pupils=3, fever=6, stiff neck=4, cough=6, insomnia=4, nausea=5, low blood pressure=4, rapid heart rate=1, dry mouth=8, anxiety=5, rash=4, shortness of breath=3, arrhythmias=3, inflamation=7, high blood pressure=10, water retention=1, dialated pupils=4, headache=3, stomach pain=3, blurred vision=5}
    J'ai un valeur nulle qui est comptabilisée à 1, alors que mon fichier contient 100 lignes, et que les 100 lignes ont un symptôme d'inscrit. Auriez-vous une explication à me donner à ce sujet, car je sèche

    2°) Mon second problème est que je dois trier ma Map par ordre alphabetique, l'afficher à la verticale et l'enregistrer vers un second fichier.

    Voilà, je suis un peu perdu dans la découpe de mon code, et le principal problème que j'ai, c'est de convertir mon Map vers une TreeMap.
    Désolé pour la longueur du poste, mais j'apprécierait toute l'aide que l'on m'apporte, merci d'avance.

  2. #2
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 326
    Points : 439
    Points
    439
    Par défaut
    J'ai un valeur nulle qui est comptabilisée à 1
    Le null arrive car effectuez votre test avant de lire la ligne suivante. En plus de celà la première ligne, qui est lue en dehors de la boucle, sera toujours ignorée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String line = reader.readLine();
     
    				while (line != null) {
    					line = reader.readLine();

    c'est de convertir mon Map vers une TreeMap.
    TreeMap possède un constructeur qui reçoit une Map:
    Constructs a new tree map containing the same mappings as the given map, ordered according to the natural ordering of its keys
    .


    Pour que votre programme soit complet je suppose que l'idéal serait de créer une classe dédiée à l'écriture, celle-ci prendrait votre Map et se chargerais de la trier et d'écrire chaque ligne dans un fichier.

  3. #3
    Candidat au Club
    Homme Profil pro
    Formation Developpeur JAVA
    Inscrit en
    Décembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Formation Developpeur JAVA

    Informations forums :
    Inscription : Décembre 2020
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Merci pour ton retour, en effet, c'était tout bête , j'ai déplacé la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    		if (filepath != null) {
    			try {
    				BufferedReader reader = new BufferedReader(new FileReader(filepath));
    				String line = reader.readLine();
     
    				while (line != null) {
     
    					if (symptomReader.containsKey(line)) {
    						symptomReader.put(line, symptomReader.get(line) + 1);
    					} else {
    						symptomReader.put(line, 1);
    					}
    				line = reader.readLine();
    				}
    				reader.close();
    Concernant la TreeMap, j'avais fait une class Writer, mais je ne sais pas comment créer la TreeMap en fonction de l'importation de la Map de ma classe SymptomReader. Peux-tu m'aider à importer ma Map dans ma nouvelle class ou du moins me donner une piste de code ?

  4. #4
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 326
    Points : 439
    Points
    439
    Par défaut
    Et bien en paramètre. Soit via le constructeur du writer soit via une méthode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Writer(mapDeSymptomes).write();
    Ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Writer.write(mapDeSymptomes);

  5. #5
    Candidat au Club
    Homme Profil pro
    Formation Developpeur JAVA
    Inscrit en
    Décembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Formation Developpeur JAVA

    Informations forums :
    Inscription : Décembre 2020
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Merci pour la piste, je regarde ça et reviens sur le forum pour le suivi

  6. #6
    Candidat au Club
    Homme Profil pro
    Formation Developpeur JAVA
    Inscrit en
    Décembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Formation Developpeur JAVA

    Informations forums :
    Inscription : Décembre 2020
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Bon, j'ai un peu avancé et je suis bloqué sur la dernière étape.
    J'ai donc créer une interface au lieu d'une seconde class. J'ai pu modifier mon HashMap en TreeMap.

    Voici donc mes nouveaux codes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    package Projet2.Test1;
     
    import java.io.IOException;
     
    public class Launcher {
     
    	public static void main(String[] args) throws IOException {
    		String filePath = "src/symptoms.txt";
    		String resultsFilePath = "src/result.out";
     
    		AnalyticsCounter analyticsCounter = new AnalyticsCounter(filePath, resultsFilePath);
     
    		System.out.println(analyticsCounter.getSymptomsOccurences());
     
    	}
    }
    Ma class
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    package Projet2.Test1;
     
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.TreeMap;
     
    /**
     * Simple brute force implementation
     *
     */
    public class AnalyticsCounter implements ISymptomReader {
    	// proprieties
    	private String filepath; // attributs
    	private String resultsfilepath; /////////////////////
     
    	public AnalyticsCounter(String filePath, String resultsFilepath) {//////////////
    		this.setFilepath(filePath); ///////////////////////////////////////////////
    		this.setResultsfilepath(resultsFilepath); /////////////////////////////////
    	}
    //	public AnalyticsCounter(String filePath) { // constructeur de la class SymptomReader
    //		this.setFilepath(filePath);
    //	}
     
    	// getter filepath
    	public String getFilepath() {
    		return filepath;
    	}
     
    	// setter filepath
    	public void setFilepath(String filePath) {
    		this.filepath = filePath;
    	}
     
    	// getter resultsfilepath ///////////////////////////////////////
    	public String getResultsfilepath() { ///////////////////////////////////////
    		return resultsfilepath; /////////////////////////////////////////
    	}
     
    	// setter resultsfilepath //////////////////////////////////////////////
    	public void setResultsfilepath(String resultsFilePath) { /////////////////
    		this.resultsfilepath = resultsFilePath; //////////////////////////////
    	}
     
    	@Override
    	public Map<String, Integer> getSymptomsOccurences() { // getter
     
    		TreeMap<String, Integer> symptomReader = new TreeMap<>(); // initialisation d'une nouvelle Map
     
    		if (this.filepath != null) {
    			try {
    				BufferedReader reader = new BufferedReader(new FileReader(this.filepath));
    				String line = reader.readLine();
     
    				while (line != null) {
     
    					if (symptomReader.containsKey(line)) {
    						symptomReader.put(line, symptomReader.get(line) + 1);
    					} else {
    						symptomReader.put(line, 1);
    					}
    					line = reader.readLine();
    				}
    				reader.close();
     
    			} catch (IOException e) {
    				System.out.println(e.getMessage());
    			}
    		}
    		return symptomReader;
    	}
     
    	@Override
    	public void setMapToFile(TreeMap<String, Integer> symptomOccurence, String resultsFilePath) {
     
     
     
    		try {
    			File file = new File(resultsFilePath);
     
    			if (!file.exists()) {
     
    				file.createNewFile();
     
    			}
    			FileWriter writer = new FileWriter(resultsFilePath);
    			BufferedWriter result = new BufferedWriter(writer);
     
    			for (String line : symptomOccurence ) {
    				result.write(line);
    				result.newLine();
    			}
     
     
    			result.close();
    			writer.close();
     
    		} catch (IOException e) {
    			System.out.println(e.getMessage());
    		}
     
    	} 
    }
    et mon interface
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    package Projet2.Test1;
     
    import java.util.Map;
    import java.util.TreeMap;
     
    /**
     * Anything that will read symptom data from a source The important part is, the
     * return value from the operation, which is a list of strings, that may contain
     * many duplications
     * 
     * The implementation does not need to order the list
     * 
     */
    public interface ISymptomReader {
    	/**
             * If no data is available, return an empty List
             * 
             * @return a raw listing of all Symptoms obtained from a data source, duplicates
             *         are possible/probable
             */
    	Map<String, Integer> getSymptomsOccurences();
     
    	void setMapToFile(TreeMap<String, Integer> symptomOccurence, String resultFilePath);
     
    }
    Je n'arrive pas à effectuer le transfert des symptomes/occurences qui sont maintenant classés dans mon fichier result.out
    La console m'affiche null :/

    Pouvez-vous m'aider ?

  7. #7
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 326
    Points : 439
    Points
    439
    Par défaut
    Je ne comprends pas bien votre problème.

    Se le résultat de System.out.println(analyticsCounter.getSymptomsOccurences()); est null alors il doit y avoir un soucis dans votre exécution car vous initialisez cette map : TreeMap<String, Integer> symptomReader = new TreeMap<>(); et ne la réaffectez jamais.

    Si le contenu de "src/result.out" est null c'est étrange car vous n'appelez jamais la méthode setMapToFile, il ne devrait donc rien y avoir dans ce fichier. Pire encore, votre code ne devrait pas compiler car l'expression for (String line : symptomOccurence ) { est invalide. Si vous voulez boucler sur les "symptomes" et les imrpimer avec leur occurence, il faut utiliser keySet() sur votre map :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(String symptom : symptomOccurence.keySet()) {
       result.append(symptom).append(' ').append(symptomOccurence.get(symptom))
          .newLine();
    }
    result.flush();

  8. #8
    Candidat au Club
    Homme Profil pro
    Formation Developpeur JAVA
    Inscrit en
    Décembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Formation Developpeur JAVA

    Informations forums :
    Inscription : Décembre 2020
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Je me suis mal exprimé,

    System.out.println(analyticsCounter.getSymptomsOccurences()); m' affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {anxiety=5, arrhythmias=3, blindness=1, blurred vision=5, constricted pupils=3, cough=6, dialated pupils=4, dizziness=5, dry mouth=8, fever=7, headache=3, high blood pressure=10, inflamation=7, insomnia=4, low blood pressure=4, nausea=5, rapid heart rate=1, rash=4, shortness of breath=3, stiff neck=4, stomach pain=3, tremor=4, water retention=1}
    dans la console, pas de problème de ce point de vu là.

    Par contre, j'ai null qui est enregistré dans mon fichier de sortie String resultsFilePath = "src/result.out";

    Je n'arrive pas à transférer mon résultat de ma première méthode dans mon fichier de sortie.

  9. #9
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 326
    Points : 439
    Points
    439
    Par défaut
    Et bien d'après ce que je vois, la méthode pour écrire le résultat dans un fichier est setMapToFile(..). Mais, comme je l'ai écris précédemment, cette méthode n'est jamais appelée.

    Votre méthode attend une TreeMap (et le chemin du fichier). Il suffit de lui passer le résultat de getSymptomsOccurences(..):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    AnalyticsCounter analyticsCounter = new AnalyticsCounter(filePath, resultsFilePath);
    Map<String, Integer> symptomsOccurences = analyticsCounter.getSymptomsOccurences();
    analyicsCounter.setMapToFile(symptomsOccurences, resultsFilePath);
    Evidemment ca n'iras pas car la méthode getSymptomsOccurences retourne une Map alors que setMapToFile attends une TreeMap. Mais c'est à vous d'aligner de l'un ou l'autre côté.

  10. #10
    Candidat au Club
    Homme Profil pro
    Formation Developpeur JAVA
    Inscrit en
    Décembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Formation Developpeur JAVA

    Informations forums :
    Inscription : Décembre 2020
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Merci pour ton retour, en effet, je n'avais pas vu que la Map de la première méthode getSymptomsOccurences était en MAP au lieu de TreeMap, c'est modifié

    Par contre, je ne comprend pas ta phase," Votre méthode attend une TreeMap (et le chemin du fichier). Il suffit de lui passer le résultat de getSymptomsOccurences(..):"

    Le chemin du fichier de destination est indiqué dans la Launcher par la variable resultstFilePath. Je l'ai intégré dans le constructor de la class AnalyticsCounter avec des getters / setters. Par contre je ne sais pas si c'est bon

    Peux-tu me donner un exemple de ce qu'il me manque ?

  11. #11
    Candidat au Club
    Homme Profil pro
    Formation Developpeur JAVA
    Inscrit en
    Décembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Formation Developpeur JAVA

    Informations forums :
    Inscription : Décembre 2020
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    J'ai enfin compris ton message et mes erreurs, je suis désolé, fatigué en ce moment .

    Il me reste plus qu'a finaliser l'enregistrement en faisant une ligne par symtomes et c'est OK.

    Je publierais mon code une fois terminé.

    Merci pour ton aide gervais.b

  12. #12
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 326
    Points : 439
    Points
    439
    Par défaut
    Concernant ma remarque sur la Map vs TreeMap, vous l'avez solutionné vous même. C'est ce que vous expliquez juste avant.

    Pour le chemin vers le fichier de sortie, j'ai bien remarqué que vous l'aviez déclaré a plusieurs endroits mais il fallait bien se décider, je vous ai donc proposé une solution qui impliquait un minimum de changement.
    Quelle est la meilleure solution ? Il n'y en a pas une meilleur l'autre, ça dépend de vos cas d'utilisation. Via le constructeur vous ne pourrez pas réutiliser votre instance pour écrire le résultat dans un second fichier. Mais ça vous permet plusieurs optimisations et validations a la création de l'instance. Via la méthode, vois pourrez réutiliser la même instance pour écrire dans plusieurs fichier. C'est l'approche que je prends la plupart du temps mais ce n'est qu'un avis personnel sans importance.

  13. #13
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 326
    Points : 439
    Points
    439
    Par défaut
    Citation Envoyé par nico5310 Voir le message
    Merci pour ton aide gervais.b
    Avec plaisir. N'oubliez pas de marquer la question comme résolue si ce n'est pas déjà fait.

  14. #14
    Candidat au Club
    Homme Profil pro
    Formation Developpeur JAVA
    Inscrit en
    Décembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Formation Developpeur JAVA

    Informations forums :
    Inscription : Décembre 2020
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Voila,
    J'ai terminé de faire ma boucle for pour écrire mes données de façon ordonnées et verticalement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    	public void setMapToFile(TreeMap<String, Integer> symptomOccurence, String resultsFilePath) {
     
    		try (FileWriter writer = new FileWriter(resultsFilePath); BufferedWriter result = new BufferedWriter(writer);) {
    			File file = new File(resultsFilePath);
    			if (!file.exists()) {
    				file.createNewFile();
    			}
    			for (Map.Entry mapentry : symptomOccurence.entrySet()) {
    				result.write(mapentry.getKey() + " " + mapentry.getValue() + "\n");
    			}
    			result.flush();
    		} catch (IOException e) {
    			System.out.println(e.getMessage());
    		}
    	}
    }
    J'ai quand même une anomalie de Eclipse qui me dit que Map.Entry is a raw type. Referencesto generic type Map.Entry<K,V> should be parameterized en ligne 79. Je ne sais pas si c'est important, le programme boucle et fonctionne correctement, mais je n'aime pas trop laisser un signalement d'éventuelles erreurs.

    Est-ce important ?

  15. #15
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 326
    Points : 439
    Points
    439
    Par défaut
    Il vous signale simplement que Map.Entry est un type genrerique mais que vous n'utilisez pas cette particularité. Il suffit que remplacer par Map.Entry<String, Integer>.

  16. #16
    Candidat au Club
    Homme Profil pro
    Formation Developpeur JAVA
    Inscrit en
    Décembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Formation Developpeur JAVA

    Informations forums :
    Inscription : Décembre 2020
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup pour ton aide

    Je vais pouvoir effectuer ma javadoc et soutenir mon projet auprès de mon prof

    Je note comme résolu bonne continuation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convertir .map en .bsp
    Par letigre1004 dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 23/04/2010, 18h41
  2. Convertir donnée lat et lng google map
    Par bugbug73 dans le forum Langage
    Réponses: 3
    Dernier message: 12/05/2009, 13h43
  3. Convertir attr "coords" de <map> en position absolute
    Par Hightuxdotnet dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/01/2009, 00h28
  4. Trie personnalisée avec une Map (TreeMap ?)
    Par Kelwee dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 06/06/2008, 16h21
  5. COnvertir une Collection en Map
    Par Tiaps dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 26/02/2008, 08h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo