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 :

tableau de vecteurs


Sujet :

Collection et Stream Java

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Par défaut tableau de vecteurs
    salut à tous,

    Je cherche une solution un peu plus élégante à mon problème:

    Je dois disposer d'un tableau à 2 dimensions. La première dimension est fixe, la 2eme ne l'est pas.

    J'ai donc défini un tableau de vecteurs comme suit :

    public class Machin{

    private Vector<Bidule>[] bidules;
    ...
    }
    Apparament, l'idée de créer un tableau de vecteur fait sursauter pas mal de développeurs java. Je ne vois pas ce qu'il y a de choquant, par contre au moment d'instancier le membre bidules, les solutions possibles ne sont pas très élégantes :

    bidules = new Vector[ size ]; // type générique non spécifié
    bidules = ( Vector<Bidule>[] ) new Vector[ size ]; //beurk


    Une autre solution consisterait à créer plutot un vecteur de vecteur (aulieu d'un tableau de vecteur) :

    bidules = new Vector< Vector<Bidule> >( size );

    , mais est-ce mieux étant donné que la première dimension est fixe?

    Merci pour vos avis sur la question.

  2. #2
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Les vector ne tombent t'ils pas en désuétude?
    Il me semble qu'il faut préférer les ArrayList.

  3. #3
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    oui, c'est vrai il faut préférer les ArrayList, car elles sont plus performantes

    mais rien ne tempêche de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList<Bidule>[] bidules = new ArrayList<Bidule>[size];
    Je ne trouve pas ca déplaisant, mais c'est mon avis

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Par défaut
    en fait j'ai besoin de la synchronization des vecteurs pour mon appli, donc je prefere ne pas utiliser d'ArrayList

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Par défaut
    Citation Envoyé par wichtounet
    oui, c'est vrai il faut préférer les ArrayList, car elles sont plus performantes

    mais rien ne tempêche de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList<Bidule>[] bidules = new ArrayList<Bidule>[size];
    Je ne trouve pas ca déplaisant, mais c'est mon avis
    en effet cette solution est élégante et logique mais malheureusement on ne peut pas créer de tableaux génériques d'une classe en java, il y a donc une erreur de syntaxe

  6. #6
    Membre émérite Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Par défaut
    Pour info, il est possible d'utiliser une collection comme une ArrayList et de la synchroniser grâce à la méthode synchronizeList de la classe Collections

  7. #7
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par foxdie
    en effet cette solution est élégante et logique mais malheureusement on ne peut pas créer de tableaux génériques d'une classe en java, il y a donc une erreur de syntaxe
    Ah merde, je savais pas ca J'avais jamais essayé... Desolé

  8. #8
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut
    arraylist de vecteurs?

  9. #9
    Expert confirmé


    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3 240
    Par défaut
    Citation Envoyé par foxdie
    Je dois disposer d'un tableau à 2 dimensions. La première dimension est fixe, la 2eme ne l'est pas.
    Attention qu'en Java, les tableaux à deux dimensions sont en fait des tableaux de tableaux.
    Donc, tu pourrais écrire ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Bidules[][] tableau = new Bidules[10][]
    Et ensuite faires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tableau[1] = new Bidules[20];
    tableau[2] = new Bidules[30];
    Vincent

  10. #10
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Par défaut
    c'est gentil, mais comme je le disais, la deuxième dimension ne doit pas etre fixe. Je souhaite pouvoir ajouter dynamiquement des "Bidule" donc un tableau de tableau ne convient pas.

    Je pense que je vais en rester au Vecteur de Vecteur ( ou ArrayList de ArrayList )

Discussions similaires

  1. Créer un tableau de vecteurs
    Par waldoun dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 02/05/2008, 23h42
  2. [FORMS 6i] Tableau et vecteur
    Par kikouu dans le forum Forms
    Réponses: 4
    Dernier message: 09/04/2008, 18h55
  3. Tri Tableau Matrice vecteur
    Par french_aspi dans le forum MATLAB
    Réponses: 9
    Dernier message: 24/03/2008, 14h50
  4. Tableau de vecteur
    Par romanegr dans le forum C++
    Réponses: 6
    Dernier message: 19/12/2007, 11h30
  5. Création d'un tableau de Vecteur de String
    Par Claythest dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 29/11/2006, 17h43

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