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 :

Création tableau à trois colonnes


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut Création tableau à trois colonnes
    Bonjour,

    je souhaiterais créer un tableau dans lequel j'insérerais des données qui se présentent sous cette forme la : "Nom" "Heure" "Valeur"
    La taille est dynamique

    Je pense que ça serait plus une HashMap mais je suis pas sur...

    En gros si vous pouviez m'éclairer

    Merci !

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tant qu'à faire du Java autant faire de la POO...

    Une classe regroupant ces 3 attributs, et une List pour stocker tout cela...


    a++

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    Ok merci je ne connaissais pas, je vais chercher un peu comment ça fonctionne ce truc la

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 96
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Yokooo Voir le message
    Ok merci je ne connaissais pas, je vais chercher un peu comment ça fonctionne ce truc la

    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
     
     
    class Main {
     
     
     
        public Main() {
            java.util.List<Info> liste = new java.util.ArrayList<Info>();
            Info info = new Info();
            info.nom = "Jacques";
            info.heure = "10h";
            info.valeur = "10";
            liste.add(info);
        }
     
    }
     
    class Info {
     
        public String nom;
        public String heure;
        public String valeur;
     
        public Info() {
        }
     
    }

  5. #5
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 32
    Points : 38
    Points
    38
    Par défaut
    Salut,

    Si on veut vraiment être rigoureux, il faut mieux mettre les attributs de la classe Info en "private" et utiliser des getters et setters!
    Ou encore mieux, passer ces attributs dans le constructeur!

    Mais c'est juste une question de forme!

    a+

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    Merci pour vos réponses, voici donc mon objet que j'ai créé :

    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
    import java.util.ArrayList;
    import java.util.List;
     
    public class TableauFormule {
     
    	private final List<TableEntry> values;
    	private int Valeur;
     
    	public TableauFormule() {
     
    		this.values = new ArrayList<TableEntry>();
     
    	   }
     
    	public void addVal(String NomStat, String Descrip, String Date, int Valeur){
    		final TableEntry entry = new TableEntry(NomStat, Descrip, Date, Valeur);
    		this.values.add(entry);
    	}
     
    	public int getValeur() {
    		return Valeur;
    	}
     
    	public final class TableEntry {
    		/** Name of the variable */
    		public final String variable;
    		/** Description de la stat */
    		public final String description;
    		/** Tranche horaire */
    		public final String horaire;
    		/** Valeur **/
    		public final int valeur;
     
    		public TableEntry(String variable, String description, String horaire, int valeur) {
    			this.variable = variable;
    			this.description = description;
    			this.horaire = horaire;
    			this.valeur = valeur;
    		}
    	}
    }
    donc j'ai créé la fonction addVal mais je ne vois pas trop comment faire une fonction qui puisse récupéré la valeur et une l'horaire... J'ai commencé pour la valeur mais je ne vois pas quoi rajouter...

  7. #7
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 32
    Points : 38
    Points
    38
    Par défaut
    Salut,

    tout va passer par tes objets TableEntry. Tu récupèreras chaque attribut grâce à des getters.

    D'abord, passe les variables de la classe TableEntry en "private".

    Ensuite crée des getters dans TableEntry comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public String getVariable() {
    	return variable;
    }
    public String getDescription() {
    	return description;
    }
    public String getHoraire() {
    	return horaire;
    }
    public int getValeur() {
    	return valeur;
    }
    Quand tu auras besoin de récupérer ces variables, tu pourras faire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for(TableEntry t : values){ //Parcours de la liste de TableEntry
    	System.out.println("Variable : " + t.getVariable());
    	System.out.println("Description : " + t.getDescription());
    	System.out.println("Horaire : " + t.getHoraire());
    	System.out.println("Valeur : " + t.getValeur());
    }
    A+

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    Un TRES grand merci à toi pour ta réactivité et ta manière d'expliquer !

    Je vais tester ça mais ça devrait marcher sans problème

    MERCI

  9. #9
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 32
    Points : 38
    Points
    38
    Par défaut
    Y a pas de problème!

    Si t'as d'autres questions n'hésite pas!

    Sinon =>

    A+

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    J'ai laissé mon arraylist dans tableauformule...

    Mais comment, à partir d'une autre classe, récupérer les valeurs ? Mon autre classe est comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TableauFormule statab = new TableauFormule();
    statab.addVal(....); // Dans une boucle for
    et après la boucle je souhaiterais pouvoir pointer sur la valeur que je veux du style statab.getValeur(2)

  11. #11
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 32
    Points : 38
    Points
    38
    Par défaut
    Bien sûr, il faut que tu garde ton ArrayList de TableEntry dans ta classe TableauFormule et c'est sur les objets de la liste que tu effectue les get()!

    Le deuxième bout de code parcours la liste TableEntry par TableEntry et récupère leurs informations à chaque fois.

    EDIT:
    AH! OK, désolé j'avais pas bien compris...

    C'est tout aussi simple,
    crée un getter de ta liste de TableEntry :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public ArrayList<TableEntry> getValues(){
            return values;
    }
    et ensuite dans ton autre classe, tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    TableauFormule tab = new TableauFormule();
    ...
    for(TableEntry t : tab.getValues()){
            //Parcours de la liste
    }

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    Edit au dessus ^

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    Désolé je suis un débutant... mais si je fais getValues je vais récupérer toutes les données ?

    En fait dans mon autre classe j'aimerais faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    statab.getValeur(2);
    statab.getHoraire(2);
    Je sais pas si je suis clair

  14. #14
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 32
    Points : 38
    Points
    38
    Par défaut
    En fait, si j'ai bien compris, tu voudrais récupérer un objet TableEntry bien spécial dans ta liste?

    Si c'est ça, il faut savoir à quelle place il est dans la liste et ensuite faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    statab.getValues.get(x).getValeur();
    statab.getValues.get(x).getHoraire();
    ...
    => stalab est ton objet TableauFormule.
    => stalab.getValues retourne ta liste de TableEntry.
    => stalab.getValues.get(x) retourne l'objet TableEntry qui se trouve à la position x dans la liste.
    => stalab.getValues.get(x).getValeur() retourne la valeur de l'attribut "valeur" de l'objet TableEntry qui se trouve à la position x dans la liste.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    Je te redonne mon code comme il est actuellement :

    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
    import java.util.ArrayList;
    import java.util.List;
     
    public class TableauFormule {
     
    	private final ArrayList<TableEntry> values;
    	private String nom;
    	private String desc;
    	private String heure;
     
    	public TableauFormule() {
     
    		this.values = new ArrayList<TableEntry>(); 
    	   }
     
    	public void addVal(String NomStat, String Descrip, String Date, int Valeur){
    		final TableEntry entry = new TableEntry(NomStat, Descrip, Date, Valeur);
    		this.values.add(entry);
    	}
    	public ArrayList<TableEntry> getValues(){
            return values;
    }
     
     
    	public final class TableEntry {
    		/** Name of the variable */
    		private final String variable;
    		/** Description de la stat */
    		private final String description;
    		/** Tranche horaire */
    		private final String horaire;
    		/** Valeur **/
    		private final int valeur;
     
    		public TableEntry(String variable, String description, String horaire, int valeur) {
    			this.variable = variable;
    			this.description = description;
    			this.horaire = horaire;
    			this.valeur = valeur;
    		}
    		public String getVariable() {
    			return variable;
    		}
    		public String getDescription() {
    			return description;
    		}
    		public String getHoraire() {
    			return horaire;
    		}
    		public int getValeur() {
    			return valeur;
    		}
    	}
    }
    Le problème c'est qu'il ne connait pas le .getValeur() à la fin...

  16. #16
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 32
    Points : 38
    Points
    38
    Par défaut
    C'est bon, j'ai compris...

    Ta classe TableEntry est une classe interne à la TableauFormule et donc, les autres classes ne peuvent pas y avoir accès (enfin je crois).
    Au lieu d'écrire TableEntry à la suite de TableauFormule, crée une nouvelle classe, à part!

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    Tu veux dire qu'il faut que je modifie ma classe tableauformule afin qu'elle ne fasse pas appel à une classe interne ?
    Excuse moi pour mon niveau médiocre en Java...

  18. #18
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 32
    Points : 38
    Points
    38
    Par défaut
    Non non, rien de tout ça!

    Il faut juste que TableEntry ne soit plus interne à TableauFormule.
    Tu pourra l'utiliser normalement, sans rien changer dans TableauFormule et en plus tu y aura accès dans les autres classes de ton programme!

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    Je vois pas du tout comment faire... Je bidouille mais ça marche pas...

  20. #20
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 32
    Points : 38
    Points
    38
    Par défaut
    Tu développes avec quel logiciel?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/10/2014, 12h17
  2. [Vba-E] Création tableau
    Par antoinelavigne dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 17/06/2006, 15h48
  3. [Oracle 9i] Comparaison de trois colonnes
    Par Requin15 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/06/2006, 18h03
  4. Tableau -> Titre colonne (th) + saut de ligne ?!
    Par AceG dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 07/05/2005, 09h46

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