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 :

Petites questions sur les ArrayList


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 8
    Par défaut Petites questions sur les ArrayList
    Suite à ce lien, J'enregistrais les motos dans un fichier correspondant aux motos, et les voitures dans celui correspondant aux voitures.

    Cependant, n'est-il pas plus simple de faire un seul fichier contenant les voitures et les motos dans un fichier véhicules, par exemple, étant donné que véhicules est une superclasse des deux autres ? (Du moins, Je trouve ça plus pratique dans l'ensemble).

    Mais alors, plusieurs questions se posent :

    Comment l'arrayList de véhicule sera créée ? Je veux dire par là, combien y aura-t-il de champs de donneés ? Le nombre total de données càd 9, ou le nombre de donnée qu'un objet peut avoir au maximum càd 7 ?

    Et Comment savoir si l'objet lu dans le fichier est une moto ou un voiture ? (Création d'un nouveau champ String "Moto" ou "Voiture" et effectuer un test dessus ?)

    Merci d'avance pour vos réponses,

    dOuki.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Août 2002
    Messages : 35
    Par défaut
    Pour ta liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List<Vehicule> lst = new ArrayList<Vehicule>();
    Pour tes types de véhicules :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class Moto extends Vehicule {
     
    }
     
    public class Voiture extends Vehicule {
     
    }
    Ensuite, pour reconnaitre le type de véhicule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Vehicule v = lst.get(0);
     
    if( v instanceof Moto ) {
         // Traitement moto
    }
     
    if( v instanceof Voiture) {
         // Traitement voiture
    }
    Voilà...

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Citation Envoyé par dOuki Voir le message
    Comment l'arrayList de véhicule sera créée ? Je veux dire par là, combien y aura-t-il de champs de donneés ? Le nombre total de données càd 9, ou le nombre de donnée qu'un objet peut avoir au maximum càd 7 ?
    ArrayList, tout comme n'importe quelle autre collection, ne s'intéresse pas aux champs des objets qu'elle contient. Combien y aura-t-il donc de champs : dans l'ArrayList, zéro champ en rapport avec les objets contenu. Dans les objets eux-mêmes : pour chacun d'entre eux, autant de champs qu'il a de champs.

    Bref, une ArrayList est la même, quoi qu'on mette dedans.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Concernant la méthode de stockage, plusieurs possibilités :

    A - 1 Fichier par classe fille

    B - 1 Fichier commun avec l'ensemble des propriétés des deux classes et un champ discriminant (Genre TYPE=M ou V). Tu peux ne mettre que les champs propre à chaque classe, mais ce sera plus compliqué à la lecture.

    C - 1 Fichier pour la classe Vehicule contenant les propriétés communes de Vehicule + le champ discriminant, 1 Fichier par classe fille contenant seulement les propriétés à chaque classe fille (Peut-être trop compliqué pour ton cas).


    La solution B sera surement la plus simple à mettre en œuvre. Et te permettra d'évoluer vers une base de données si tu le souhaites.

    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TYPE;  marque;    NbrPorte;     Cylindree
    V   ;   PinPin;        2;      <vide>
    M  ;   PonPon;   <vide>;      750cc

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 8
    Par défaut
    Merci pour vos éclairages, j'ai réussis à faire ce que je voulais.

    dOuki.

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

Discussions similaires

  1. Petite question sur les conventions de nommage en Java
    Par implosion dans le forum Langage
    Réponses: 7
    Dernier message: 18/01/2006, 15h54
  2. Petites question sur les onglets...
    Par jarod_bx dans le forum Access
    Réponses: 1
    Dernier message: 20/12/2005, 18h45
  3. [ATL] Petite question sur les progress bar
    Par MrMaze dans le forum MFC
    Réponses: 1
    Dernier message: 06/05/2005, 09h40
  4. Réponses: 3
    Dernier message: 08/12/2004, 13h58
  5. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49

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