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 :

problème avec affichage d'un tableau


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bandit_debutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Par défaut problème avec affichage d'un tableau
    Bonjour,

    j'essaie d'afficher à l'écran le contenu d'un tableau.
    Voici le code pour la première classe qui implémente un tableau pour accueillir le matériel informatique disponible.
    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
     
    package materiel;
     
    public class Equipement {
            int indice=0;
            //déclaration et création d'un tableau
            Materiel liste[]=new Materiel[50];
     
            //constructeur
            Equipement(){}
     
            //méthode pour ajouter un objet à la liste
            public void ajouter(Materiel m){
                liste[indice]= m;
                indice++;
            }
     
            //méthode pour accéder aux éléments de la liste
            public Materiel iemeElement(int i){
                return liste[i];
            }
     
            }

    Voici la classe pour tester la précédente
    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
     
    package materiel;
     
    public class TestEquipement {
        public static void main (String [] args){
            Equipement equipo=new Equipement();
            equipo.ajouter(new Ordinateur("ASUS", "540"));
            equipo.ajouter(new MP3("SONY", "M100"));
            equipo.ajouter(new AppareilPhoto("SAMSUNG", "S510"));
            equipo.ajouter(new Videoprojecteur("NEC", "N800"));
     
     
            Materiel elemento;
            elemento=equipo.iemeElement(3);
            System.out.println(elemento);
        }
     
    }
    A l'affichage j'obtiens par exemple:
    materiel.Videoprojecteur@a90653

    Qu'est-ce qui ne marche pas?
    Merci d'avance

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Tu affiches le pointeur de l'objet et non ses éléments. Tu dois parcourir l'objet et afficher les éléments un à un.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    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
    D'abord, évite de réinventer la route. Ta classe Equipement gère une liste d'éléments, alors autant directement utiliser un List<Materiel>:
    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
    package materiel;
     
    public class TestEquipement {
        public static void main (String [] args){
            List<Materiel> equipo=new ArrayList<Materiel>();
            equipo.add(new Ordinateur("ASUS", "540"));
            equipo.add(new MP3("SONY", "M100"));
            equipo.add(new AppareilPhoto("SAMSUNG", "S510"));
            equipo.add(new Videoprojecteur("NEC", "N800"));
     
     
            Materiel elemento;
            elemento=equipo.get(3);
            System.out.println(elemento);
        }
     
    }
    Ensuite, si tu veux afficher un MAteriel comme un String, tu dois surcharger sa méthode 'toString()' qui est appelée implictement quand tu fait System.out.println(elemento);

  4. #4
    Membre confirmé Avatar de bandit_debutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Par défaut
    [QUOTE=tchize_;3319966]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
            List<Materiel> equipo=new ArrayList<Materiel>();
    QUOTE]

    Et qu'est-ce qu'elle apporte en plus cette ligne?

  5. #5
    Membre confirmé Avatar de bandit_debutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Par défaut
    Donc, si je fait une ArrayList je n'ai pas besoin de faire une classe "Equipement"?

  6. #6
    Membre confirmé Avatar de bandit_debutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Par défaut
    J'ai compris pour Array.
    Mais je n'arrive toujours pas à afficher son contenu.

  7. #7
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Soit tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(elemento.getMarque() + " - " + elemento.getModele()));
    Soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    System.out.println(elemento);
     
     
    //En ajoutant dans Materiel la méthode :
    private static final String SEPARATEUR = " - ";
    public String toString(){
        return marque + SEPARATEUR  + modele;
    }
    Dans les 2 cas tu auras :
    "SONY - M100"

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

Discussions similaires

  1. Problème avec affichage de tableau
    Par hedibox dans le forum JSF
    Réponses: 1
    Dernier message: 30/08/2013, 12h03
  2. Problème avec affichage contenu d'un tableau
    Par demcoul dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 08/08/2008, 10h08
  3. Problème avec PtInRegion et un tableau dynamique
    Par mduse dans le forum Langage
    Réponses: 2
    Dernier message: 06/12/2005, 09h29
  4. Problème avec affichage d'une table modifiée
    Par auriolbeach dans le forum Access
    Réponses: 6
    Dernier message: 31/10/2005, 15h45
  5. [débutant]problèmes d'affichage dans un tableau
    Par Hastur dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 16/08/2005, 12h00

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