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

Langage Java Discussion :

Transformation de listes


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Par défaut Transformation de listes
    Bonjour a tous. Voici mon problème

    Je dispose d'une liste d'objets dont les attributs sont les suivants (identifiant, marque de voiture, modèle de voiture). Par exemple :

    1 renault scenic
    1 renault clio
    2 peugeot 106
    2 peugeot 206
    2 peugeot 306

    (oui l'identifiant n'est pas forcément unique )

    je voudrais savoir si quelqu'un a une idée pour (en java bien sur ) fusionner ces objets pour avoir :

    1 renault liste{scenic, clio}
    2 peugeot liste{106,206,306}

    Merci beaucoup

  2. #2
    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
    Dans une liste, ce n'est pas directement possible, il faut utiliser soit une liste de liste ou une map de liste.

    Il faut que tu parcoures ta première liste et tu récupères le type de ta voiture et tu l'ajoutes dans la liste correspondante.

    Par exemple :

    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
    List<Voiture> baseVoitures = new ArrayList<Voiture>();
     
    //Traitements divers
     
    Map<String, List<String>> voitures = new HashMap<String, List<String>>(baseVoitures.size());
     
    for(Voiture v : Voiture){
        String marque = v.getMarque();
     
        if(!voitures.containsKey(marque)){
            voitures.put(marque, new ArrayList<String>());
        }
     
        voitures.get(marque).add(v.getModele());
    }

  3. #3
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    En fait il faudrait en savoir un peu plus sur tes objets pour pondre un début de code, est-ce que tu pourrais fournir ce que tu as déjà, par exemple tes classes pour gérer les voitures / les marques ?

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Par défaut
    Ok merci pour vos réponses les gars.

    @Rei Ichido : en fait, il s'agit juste d'un objet Voiture tout con avec getters et setters, rien de +. Je cherche juste a reformatter mon resultat pour "fusionner" les lignes de ma liste en fonction d'un attribut donné

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Par défaut
    Voici plus précisément mon besoin :

    Je dispose d'une liste d'elements dont voici un jeu de tests:

    FRANCE - 7 - Dupond - Jacques - Scenic- RENAULT
    ESPAGNE - 12 - Dupont - Jean - Clio - RENAULT
    FRANCE - 18 - Leger - Marc - 106 - PEUGEOT
    FRANCE - 18 - Leger - Marc - 206 - PEUGEOT
    FRANCE - 18 - Leger - Marc - 306 - PEUGEOT
    FRANCE - 18 - Leger - Marc - Berlingo- CITROEN

    getPaysOrigine / GetIdClient / GetNomClient / GetPrenomClient / GetModele / GetMarque

    et au final je voudrais ceci sous la forme d'une liste de client

    7
    FRANCE
    Dupond
    Jacques
    RENAULT
    | Clio


    12
    ESPAGNE
    Dupond
    Jean
    RENAULT
    | Scenic


    18
    FRANCE
    Leger
    Marc
    PEUGEOT
    | 106
    | 206
    | 306
    CITROEN
    | Berlingo

    Désolé cela peut paraitre trivial mais je me demande effectivement si je vais m'en sortir en gardant des listes.

  6. #6
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Bonjour,

    D'apres ce que je vois:
    En entree
    FRANCE - 7 - Dupond - Jacques - Scenic- RENAULT
    ESPAGNE - 12 - Dupont - Jean - Clio - RENAULT
    FRANCE - 18 - Leger - Marc - 106 - PEUGEOT
    FRANCE - 18 - Leger - Marc - 206 - PEUGEOT
    FRANCE - 18 - Leger - Marc - 306 - PEUGEOT
    FRANCE - 18 - Leger - Marc - Berlingo- CITROEN
    En sortie

    7 FRANCE Dupond Jacques RENAULT | Clio
    12 ESPAGNE Dupond Jean RENAULT | Scenic
    18 FRANCE Leger Marc PEUGEOT | 106 206 306 CITROEN Berlingo
    Le MultiValueMap peut repondre a tes besoins, le seul probleme il n'est thread safe et pas synchro.

    Key pour MultiValueMap idClient, paysOrigine, nomClient, prenomClient
    Value c'est encore un MultiValueMap

    Key pour ce MultiValueMap idMarque
    Value idModele

Discussions similaires

  1. [débutant] transformer une List en array
    Par pingoui dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 28/01/2009, 10h48
  2. Transformer une liste de caractères en nombre
    Par divpload dans le forum Général Python
    Réponses: 2
    Dernier message: 18/05/2008, 19h31
  3. transformer un listing en tableau
    Par triaguae dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 03/04/2008, 11h02
  4. Transformer une liste en tableau
    Par basket dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 07/09/2006, 16h01
  5. Transformer une liste en chaîne de caractères
    Par nounjours dans le forum Prolog
    Réponses: 1
    Dernier message: 23/02/2006, 15h41

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