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. #21
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Par défaut
    Je suis sous Eclipse, tiens voila ce que je viens de faire, j'ai cru comprendre qu'il fallait faire ça non ?

    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
    import java.util.ArrayList;
    import java.util.List;
     
    public class TableauFormule {
     
    	private final ArrayList<TableEntry> values;
    	private int valeur;
    	public final String horaire;
     
    	public TableauFormule() {
     
    		this.values = new ArrayList<TableEntry>(); 
    		this.valeur = getValeur();
    		this.horaire = getHoraire();
    	   }
     
    	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 String getHoraire() {
    		return horaire;
    	}
     
     
    	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;
    		}
    	}
    }
    Maintenant je peux faire appel à la fonction .getValeur et .get Horaire, mais je n'ai pas encore testé

  2. #22
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 32
    Par défaut
    Je pense que ce que tu as fait va fonctionner mais ce n'est pas propre du tout...

    Si tu es sous Eclipse, tu dois avoir ton projet qui apparait à gauche, avec ou sans package (petit carré marron).

    Clic droit sur le package ("default package", ou celui que tu as créé) qui contient ta classe TableauFormule puis New => Class que tu nommera TableEntry et dans laquelle tu copiera le code de ta classe interne actuelle.
    Tu pourra tout utiliser normalement!
    Remet les getters dans cette classe là et tes variables en "private".

    Sinon, pourquoi as-tu mis les variables de la classe interne en "final"?
    Ce mot clef en fait des constantes que tu ne pourras pas modifier après leur création.

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Par défaut
    Voila j'ai créé la nouvelle classe comme tu m'as dit, voici mes deux classes :

    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
    import java.util.ArrayList;
     
    public class TableauFormule {
     
    	private final ArrayList<TableEntry> values;
     
    	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);
    	}
    }
    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
    public 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 int getValeur(){
            return valeur;
    	}
    	public String getHoraire(){
            return horaire;
    	}
    	public String getVariable() {
    		return variable;
    	}
    	public String getDescription() {
    		return description;
    	}
     
    }
    Et la je fais quoi ? Je suis complètement paumé ^^

    Le final est la pour etre sur que rien ne modifie des valeurs dans mon tableau, enfin je sais pas s'il est vraiment utile...

  4. #24
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 32
    Par défaut
    Maintenant tu peux rajouter un getter sur ta liste dans ta classe TableauFormule et dans ta nouvelle classe tu pourra tout utiliser comme tu voulais le faire au début, dans une nouvelle classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    TableauFormule tab = new TableauFormule();
    tab.addVal(...);
    ...
    System.out.println("Valeur du TableEntry à la position x dans la liste : " + tab.getValues().get(x).getValeur());
    Tu devrais essayer de suivre des tutos avant de te lancer là dedans, c'est vrai que c'est pas forcément simple au début!

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Par défaut
    J'en ai regardé mais les cas présentés étaient vraiment différents des miens...

    sinon je comprend pas d'ou vient le getValues(x) ?

  6. #26
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 32
    Par défaut
    - La variable "tab" est l'instance de ta classe TableauFormule.
    - "tab.getValues()" retourne l'ArrayList de TableEntry qui est l'attribut de "tab".
    => getValues() est une méthode que tu dois créer dans TableauFormule, de la même manière que getValeur() dans TableEntry.

    - "tab.getValues().get(x)" est une méthode de l'ArrayList (donc que tu n'as pas à implémenter) qui retourne l'élément x de la liste, ici un TableEntry.

    Voila le détail :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ...
    TableauFormule tab = new TableauFormule();
    tab.addVal(...);
    ...
    ArrayList<TableEntry> liste = tab.getValues();
    TableEntry entry = liste.get(0); //Premier élément de la liste
    int valeur = entry.getValeur(); //Valeur du premier élément de la liste
     
    System.out.println("Valeur du TableEntry à la position 0 dans la liste : " + valeur);
    Ça va mieux maintenant?

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Par défaut
    Non et ça me soule la de rien comprendre !

    Je regarde des tutos en même temps mais je dois tomber que sur des truc merdiques !

    Bon..... je vais reprendre calmement...
    Tout d'abord j'ai ma class TableauFormule dans lequel je retrouve deux méthodes : addVal et getValues(mon getter), mon getValues va renvoyer une arraylist :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	public ArrayList<TableEntry> getValues(){
    		return valeur;
    	}
    Donc je déclare au début ma variable avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private ArrayList<TableEntry> valeur;
    Ensuite... dans mon TableEntry j'ai mon getter getValeur qui renvoie, a la différence de getValues un int :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public int getValeur(){
            return valeur;
    	}
    Et pour finir dans ma classe ou je souhaite afficher uniquement les valeurs de mon tableau, j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    		for (int i=0; i<xxx; i++)
    		{
    			TableEntry entry = liste.get(i);
    			int valeur = entry.getValeur();
    			System.out.println("Valeur du TableEntry à la position 0 dans la liste : " + valeur);
    		}
    Voila ce que j'ai compris qui doit être complètement faux !

    Ce n'est plus de la patiente que tu as avec moi... ça relève de l'exploit !
    Je me met à ta place :s moi même je me soule la

  8. #28
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 32
    Par défaut
    T'as tout compris, ou presque!

    Ça c'est ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (int i=0; i<xxx; i++){
    	TableEntry entry = liste.get(i);
    	int valeur = entry.getValeur();
    	System.out.println("Valeur du TableEntry à la position 0 dans la liste : " + valeur);
    }
    "xxx" est la longueur de la liste que tu peux connaitre grâce à la méthode getSize() qui retourne un int, en faisant :
    liste.getSize()

    Ensuite, tu ne l'as pas mis mais j'imagine que ton objet liste vient de là :
    TableauFormule tab = new TableauFormule();
    ArrayList<TableEntry> liste = tab.getValeur();

    Si c'est ça, c'est nickel et ça devrait fonctionner!

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Par défaut
    Wooow.... effectivement ! GG à toi !

    Tout marche !

    Un petite précision juste, c'est liste.size() pour récupérer la taille.

    Un GRAND merci pour avoir résolu mon problème, je t'en suis très reconnaissant !


    Peut être à bientôt

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/10/2014, 13h17
  2. [Vba-E] Création tableau
    Par antoinelavigne dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 17/06/2006, 16h48
  3. [Oracle 9i] Comparaison de trois colonnes
    Par Requin15 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/06/2006, 19h03
  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, 10h46

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