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 :

convertir un tableau en une liste sans passer par une boucle


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 190
    Points : 49
    Points
    49
    Par défaut convertir un tableau en une liste sans passer par une boucle
    Bonjour,

    j'ai un tableau
    Classe1[] tab et je veux le convertir en
    java.util.list sans passer par une boucle, y a t il un moyen


    merci
    Sallemel

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    bonjour,

    tu peux utiliser la méthode asList de la classe Arrays :

    Citation Envoyé par javadoc
    asList(T... a)
    Returns a fixed-size list backed by the specified array.
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 190
    Points : 49
    Points
    49
    Par défaut
    cette methode marche avec les types generique?, j'utilise en fait jdk1.5
    et le casting d'array classe1 ne passe pas

    Cdlt
    Sallemel

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Oui, elle marche avec les types génériques.

    Mais il faut l'appeler comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String[] mesStrings = ...;
    List<String> mesStringsList = java.util.Arrays.asList(mesStrings);

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 190
    Points : 49
    Points
    49
    Par défaut
    en fait, c'est ce que j'ai fait au debut, mais
    moi je recupere un tableau
    Object [] tab1 (ce tableau en realite il contient des objets de la classe Famille)
    et je veux avoir a partir de ce tableau une liste java.util.list <Famille>
    j'ai peut etre mal formule ma question, ce que je voudrais savoir c plutot
    comment convertir un tableau
    classe1 [] tab1 en classe2[] tab2 (avec bien sur classe2 derive de classe1) sans passer par une boucle

    Merci
    Cdlt
    Sallemel

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Si tu es certain qu'il ne contient que des objets Famille, tu peux faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Object[] mesObjets = ...;
    List<Famille> mesFamilles = Arrays.asList((Famille[])mesObjets);

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 190
    Points : 49
    Points
    49
    Par défaut
    j'ai essaye ces deux tests, mais ca ne passe pas, j'ai cette erreur liee au cast, tout en etant certain que le tableau est forme de classe Famille :
    java.lang.ClassCastException: [Ljava.lang.Object;
    Object[] mesObjets = ...;
    test1 : List<Famille> mesFamilles = Arrays.asList((Famille[])mesObjets);
    test2 : List<Famille> mesFamilles = (List<Famille>)Arrays.asList((Famille[])mesObjets);

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    C'est vrai que j'ai oublié de préciser que le tableau devait avoir été instancié en tant que Famille[]. J'ai supposé trop vite que c'était un cast en Object[] suite à une fonction...

    Si c'est un vrai new Object[] {...} alors, tu dois passer par une boucle et caster chaque Famille individuellement.

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/11/2014, 08h18
  2. [XL-2007] Récupérer l'adresse d'une cellule sans passer par une macro
    Par Runsh63 dans le forum Excel
    Réponses: 4
    Dernier message: 28/04/2014, 15h09
  3. Réponses: 12
    Dernier message: 04/12/2013, 21h22
  4. [Toutes versions] Suppression d'une liste sans passer par Paramètre de la liste
    Par hassine dans le forum SharePoint
    Réponses: 4
    Dernier message: 23/12/2009, 10h41
  5. [Debutant]Remplacer une liste de valeur par une liste de val
    Par Sebbo dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 31/03/2006, 12h15

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