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 :

Utilisation des collections, tri et affichage des informations d'un fichier dans une fenêtre JOptionPane


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 69
    Par défaut Utilisation des collections, tri et affichage des informations d'un fichier dans une fenêtre JOptionPane
    Bonjour,
    J'ai un TP qui me chauffe la tête, là je suis bloqué je ne sais quel chemin emprunter,
    et je tiens à vous informer que je suis un debutant en Java;

    L'objectif de l'exercice est de trier les doublons et afficher les informations d'un fichier fournie avec l'excercice à l'aide d'une boite à dialogue JOptionPane.

    J'ai crée les classes demandé, je compte faire trois fichiers chacun sa classe.
    Un fichier classe Election, class principale qui contient la méthode main.

    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
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    /**
     
     *@date 24 octobre 2015
     *Programme qui affiche les informations sur les deputés, les partis et les circonscriptions 
     */
     
     
    public class Election {
    	//attribut Election
    	String collectionDesNomDeCirconscription; 
    	String collectionDesNomDePartis;
    	String collectionDesNomDeDepute;
    	String collectionDeputePrecedent ;
    	String collectionCirconscriptionPrecedent ;
    	int [][] tab2D = new int [][] ;
     
     
    	/**Le constructeur Election avec son argument année 
             et qui crée les instances des collections vide**/
     
    	public Election(int annee){
     
    	}
     
    	/**La methode qui ajoute la circoscription si elle n'existe pas dans la collection 
             * associée et retiens la position ou il à été ajouté**/
     
    	public int ajouterCirconscription(String Nom, int numero){
     
    	}
     
     
    	/**La methode qui ajoute le nom du parti s'il n'existe pas dans la collection associée
              et reoutrne la position sur la quelle elle a été ajouté ou elle a été trouvé dans la collection **/
     
    	public int ajouterNomParti(String nomParti){
     
    	}
     
     
    	/**La methode qui ajoute le nom du deputé s'il n'existe pas dans la collection associée
              et cree un objet de la class Depute pour retenir le numero de circonscription
              et le numero du parti que nous ajoutons à la collection de Deputé pas besoin de retourner de position **/
     
    	public void ajouterDepute(String circonscription, String nomDepute, int noParti){
     
    	}
     
     
    	/*Les metodes qui obtiennent et retournent les tableaux statiques équivalents à la collection associée*/
     
    	private String[] obtenirNomsCirconscription(){
     
    	}
     
    	private String[] obtenirNomsParti(){
     
    	}
     
    	private String[] obtenirNomsDepute(){
     
    	}
     
     
    	public static void main(String args[]){
     
    		String nomParti = ficText.next();
    		int noParti = ajouterNomParti(nomParti);
    	}
     
     
    }
     
    ========================================Class Deputé=============================
    /**
      *Un programme qui gère la liste des deputé
     */
    public class Depute {
    	private int numeroCase ;
    	private int numeroParti;
     
     
    	//Constructeur
     
    	public Depute(){
     
    	}
     
     
    	//les getters et setters
     
    	public void get(){
     
    	}
    	public void set(){
     
    	}
     
     
    }
     
    =======================Class Circoncription========================
     
    /**
     * 
     */
     
    /**
     * @author AmadouW8
     *
     */
    public class Circonscription {
     
    	private int numeroCirconscription;
    	private String NomCisrconscrition;
    	private int numeroCaseDeputeElu;
     
     
     
     
    }
    Dans la partie class Election, les attribut sont des collections sur les quels on p ajouter des informations
    tel que nom de Deputé, s'il n'y a aucun nom de Deputé dans la collection associé au Deputé, la methode ajouter pourra le faire,
    pareil pour la partis circonscription,

    Mes deux questions principales pour commencer sont les suivante:
    Comment faire pour écrir dans une collection(ajouter nom Deputé, nom Parti ou Circonscription s'il n'est pas présent dans collection) et créer la boite à dialogue qui demande à l'utilisateur de choisir une option Deputé, Parti ou Circonscription
    J'ai joins la fiche du TP au complet peut être si c'est pas claire mes explixations vous pouvez jeter un coups d'oeils sur la fiche qui fait 4 feuilles[Partie 1].
    inf111ElectionA15Tp2Partie1.docx

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Une collection c'est un type qui peut contenir plusieurs valeurs. En Java, l'interface Collection est la base des classes permettant de gérer des collections, dont les 2 types principaux sont les List (permettant un accès direct à chaque élément) et les Set (impliquant que toute valeur ne peut y être présent qu'une seule fois).

    En fonction des spécifications, tu choisiras soit une List, soit un Set, puis une implémentation concrète la plus adaptée.

    Par exemple, on peut utiliser pour une List, l'implémentation concrète ArrayList, utilisant un tableau en interne pour stocker les éléments, étant particulièrement performante pour l'accès (lecture), mais moins pour l'ajout ou la suppression (écriture), on peut faire quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class Election {
     
         private List<String> collectionDesNomsDeParti = new ArrayList<>();
     
         public void ajouter(String nomDeParti) {
               if ( !collectionDesNomsDeParti.contains( nomDeParti ) ) { // si la liste ne contient pas déjà le nom
                    collectionDesNomsDeParti.add( nomDeParti ); // on l'ajoute à la liste
               }
         }
     
    }
    En ce qui concerne la boite de dialogue, JOptionPane est plutôt à la base prévue pour gérer des options alternatives sous forme de boutons, ce qui n'est pas très standard, puisqu'on s'attendrait plutôt à des boutons radios, mais tu peux construire un JPanel avec des JRadioButtons et le passer en paramètre message (à la méthode JOptionPane.showConfirmDialog()).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 69
    Par défaut
    Bonjour;

    Merci pour la reponse,

    Pour l'ajout c'est bon j'ai compris je voudrais savoir aussi,
    1)Comment faire pour retourner la position où il a été ajouté ou trouvé?
    2)Comment créer un objet de la class Depute pour retenir le numero de la circonscription ainsi que le numero du partis ?
    3)Comment recuperer les tableaux statique équivalent à la collection associée?

    Merci d'avance.

    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
     
     
    /**La methode qui ajoute le nom du deputé s'il n'existe pas dans la collection associée
              et cree un objet de la class Depute pour retenir le numero de circonscription
              et le numero du parti que nous ajoutons à la collection de Deputé pas besoin de retourner de position **/
     
    	public void ajouterDepute(int circonscription, String nomDepute, int noParti){
     
    		if(!collectionNomDepute.contains(nomDepute)){ //Si la liste ne contien pas nom de Depute on l'ajoute 
     
    			collectionNomParti.add(nomDepute);
     
                     //Comment retourner la position où il a été ajouté ou il a été trouvé ?
     
                     //Comment créer un objet de la class Depute pour retenir le numero de la circonscription ainsi que le numero du partis ?
     
     
     
    		}
     
     
    	}
     
     
    	/*Les metodes qui obtiennent et retournent les tableaux statiques équivalents à la collection associée*/
     
    	private String[] obtenirNomsCirconscription(){  //Comment recuperer les tableaux statique équivalent à la collection associée?
     
    	}

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Khalfe Voir le message
    1)Comment faire pour retourner la position où il a été ajouté ou trouvé?
    add() ajoute, sous-entendu à la fin, donc en position correspondant à la taille de la liste avant ajout (voir javadoc de List).
    Je ne vois pas ce que tu veux dire par "trouvé" : si c'est pour connaitre la position d'un élément dans une List, voir List.indexOf().
    Citation Envoyé par Khalfe Voir le message
    2)Comment créer un objet de la class Depute pour retenir le numero de la circonscription ainsi que le numero du partis ?
    Euh, en créant une classe Depute avec les attributs en question, et on créant une instance de cette classe. Qu'est-ce qui te coince à ce sujet ?

    Citation Envoyé par Khalfe Voir le message
    3)Comment recuperer les tableaux statique équivalent à la collection associée?
    De quels tableaux statiques parles-tu ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Khalfe Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
     
    	public void ajouterDepute(int circonscription, String nomDepute, int noParti){
     
    		if(!collectionNomDepute.contains(nomDepute)){ //Si la liste ne contien pas nom de Depute on l'ajoute 
     
    			collectionNomParti.add(nomDepute);
    Utiliser un Set<String> plutot qu'une List<String> t'éviterais d'avoir à écrire ce genre de test
    Citation Envoyé par Khalfe Voir le message
    //Comment retourner la position où il a été ajouté ou il a été trouvé ?
    indexOf, ou simplement size()-1 dans le cas d'une liste.
    Citation Envoyé par Khalfe Voir le message
    //Comment créer un objet de la class Depute pour retenir le numero de la circonscription ainsi que le numero du partis ?
    Faudra préciser, ce n'est pas clair comme question

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2008
    Messages : 69
    Par défaut
    Bonjour à vous;

    Je vous remercie d'abord pour votre aide Joel et tchize_.

    Je voudrais confirmer avec vous après une lecture de vos réponses et quelque recherches sur internet.

    1-lastIndexOf(), pour retourner le dernier élément de la collection,
    2-Comment retourner le numéro d'un élément trouvé dans la collection ?? Dans mon code ci-dessous, j'ai mis une méthode getClass() mais je ne sais pas si c'est correcte, j'ai essayé avec getKey() mais eclipse refuse la méthode.

    Il y a l'ensemble du code ci-dessous.

    tchize_ , Voici ce que l’exercice me dit :
    avec la méthode:

    public void ajouterDepute(int circonscription, String noDepute, int noParti){

    Si le nom n'existe pas, vous l'ajoutez dans la collection associé et vous créez un objet de la classe Député pour retenir le numéro de circonscription et le numéro du parti. Que vous ajoutez à la collection Député.

    }

    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
    public class Election {
        //attribut Election
        private int anneeElection;
        private HashSet <String> collectionNomCirconscription = new HashSet <String>();
        private HashSet <String> collectionNomParti = new HashSet <String> ();
        private HashSet <String> collectionNomDepute = new HashSet <String> ();
        private HashSet <Depute> collectionDeputePrecedent = new HashSet <Depute> ();
        private HashSet <Circonscription> collectionCirconscriptionPrecedent = new HashSet <Circonscription> ();
     
        private int [][] tab2D = Collection.toArray(new int[0][0]); // x et y sont des valeurs
     
     
        /**Le constructeur Election avec son argument année
         et qui crée les instances des collections vide**/
     
     public Election(int annee){
            this.anneeElection = annee;
     }
     
        private int[][] toArray(int[][] is) {
    		// TODO Auto-generated method stub
    		return null;
    	}
     
    	/**La méthode qui ajoute la circonscription si elle n'existe pas dans la collection
         * associée et retiens la position ou il à été ajouté**/
     
    public String ajouterCirconscription(String nomCirconscription, int numeroCirconscription){
     
    if(!collectionNomCirconscription.contains(nomCirconscription)){ //Si la liste ne contient pas nom de la circonscription on l'ajoute
     
        collectionNomCirconscription.add(nomCirconscription);// Il ajoute un nom au liste
     
        nomCirconscription.lastIndexOf(nomCirconscription); //Et cette instruction me retourne le dernier nom ajouté???
        collectionNomCirconscription.size()-1;		//Et ce mention me retounera le numero du nom ajouté vue qu'il correspond à la taille de la collection ??? 
     
     
     
            }
     
    else if(collectionNomCirconscription.contains(nomCirconscription)){ //Si la collection contient le nom de la circonscription
     
    	collectionNomCirconscription.getClass().getSimpleName();/** Et ce que cette methode peut me retourner le numero 
                                                                                                                            de position de la circonscription dans la collection ???
                                                                                                                            Sinon comment faire ??? **/
    }
     
        }

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Khalfe Voir le message

    1-lastIndexOf(), pour retourner le dernier élément de la collection,
    L'index du dernier élément de la collection égal au paramètre de la méthode, ou -1 si il n'y a pas de correspondance
    Citation Envoyé par Khalfe Voir le message
    2-Comment retourner le numéro d'un élément trouvé dans la collection ??
    je suppose que tu veux dire l'index. indexOf pour le premier match, lastIndexOf pour le dernier match.

    Citation Envoyé par Khalfe Voir le message
    Dans mon code ci-dessous, j'ai mis une méthode getClass() mais je ne sais pas si c'est correcte,
    T'espère sortir quoi de getClass().getSimpleName()? Ca va te retourner "HashSet" comme chaine de caractères

    Tu as essayé de compiler ton code? Les méthode indexOf /lastIndexOf sont sur les List, pas sur les Set ou les Collection. Si tu veux donner un numéro à chaque circonscription, fait le, n'essaie pas de te baser sur des effets de bord de List ou autre. Ton numéro est passé en paramètre. T'a juste à crée un Map<Integer,String> circonstription ou une Map<String,Integer>, suivant que tu compte trouver le nom par numéro ou l'inverse.

    Citation Envoyé par Khalfe Voir le message
    j'ai essayé avec getKey() mais eclipse refuse la méthode.
    il n'y a pas de méthode getKey sur les Collections

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/09/2015, 18h20
  2. Réponses: 2
    Dernier message: 01/11/2009, 19h56
  3. Réponses: 7
    Dernier message: 10/10/2008, 16h05
  4. Affichage d'un résultat de calcul dans une fenêtre
    Par Marcusss dans le forum Interfaces Graphiques
    Réponses: 17
    Dernier message: 03/04/2007, 12h23
  5. JAVA - XML - Affichage des données triées
    Par TheReturnOfMuton dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 05/07/2006, 11h14

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