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 :

probleme avec ArrayList


Sujet :

Collection et Stream Java

  1. #1
    Membre confirmé Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Par défaut probleme avec ArrayList
    Bonjour,

    je travaille en j2ee et j'ai un problème avec mon arraylist que j'utilise pour afficher le résultat de ma requéte ...il me retourne le résultat en deux fois ,quelqu'un pourrait m'aider je comprends pas pourquoi ! voici mon code qui récupère un tableau d'objet comme résultat de la requête,c'est la ou ça pose probléme je comprends pas pourquoi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    List<Object> lst_ = new ArrayList<Object>();
    	List<Object[]> lst = req.getResultList();
    	for (Object[] tObj : lst)
    		for (int i = 0 ; i < tObj.length ; i++)
    			lst_.add(tObj[i]);
     
    		return lst_;
    quelqu'un pourrait m'aider SVP !

  2. #2
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    Bonjour,

    peux-tu être plus précis sur ce point:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    il me retourne le résultat en deux fois

  3. #3
    Membre confirmé Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Par défaut
    Il me retourne le resultat en double ,au lieu de me retourner par exemple :

    il m'affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    France
    Espagne
    France
    Espagne

  4. #4
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    Et tu es sûr ce que ta méthode:
    te renvoie pas déjà ça?

    Modifie ton code comme suis pour le vérifier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    List<Object> lst_ = new ArrayList<Object>();
    List<Object[]> lst = req.getResultList();
    for (Object[] tObj : lst) {
    	for (int i = 0 ; i < tObj.length ; i++) {
    		lst_.add(tObj[i]);
    		System.out.println("Add " + tObj[i]);
    	}
    }
    return lst_;

  5. #5
    Membre confirmé Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Par défaut
    Il m'affiche ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Add ,France 
    Add ,espagne
    Add ,France
    Add ,espagne
    il boucle deux fois avant de s'arreter !

  6. #6
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    Donc tu ne regardes pas où il faut, c'est ta méthode getResultList qui est en cause.

  7. #7
    Membre confirmé Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Par défaut
    Citation Envoyé par Deaf Voir le message
    Et tu es sûr ce que ta méthode:
    te renvoie pas déjà ça?
    ça me revoit une liste d'objet ,j'ai besoin d'un tableau pour les afficher parcequ'il me renvoyait l'adresse de l'objet avec List<Object>

  8. #8
    Membre confirmé Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Par défaut
    Citation Envoyé par Deaf Voir le message
    Donc tu ne regardes pas où il faut, c'est ta méthode getResultList qui est en cause.
    avant de rajouter cette boucle il m'affichait l'adresse de l'object mais il renvoyait pas le resultat en double ,ma requéte est bonne et ya aucun soucis avec getResultList ...je travaille avec hibernate et j'ai fait pas mal de requéte qui retourne un seul object et ça marche bien ,le probleme c'est quand je veux afficher plusieurs objets !

  9. #9
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    Citation Envoyé par foufatoon Voir le message
    j'ai besoin d'un tableau pour les afficher parcequ'il me renvoyait l'adresse de l'objet avec List<Object>
    Tu peux développer?
    Parce que là, j'ai l'impression que tu renvoies une liste de tableau au lieu d'une liste d'objets parce que tu n'as pas réussi à faire ce que tu voulais...

  10. #10
    Membre confirmé Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Par défaut
    Voici ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Query req = getEntityManager().createQuery("SELECT ob2 , ob4  " +
    				"FROM " +nomObject1 + " as ob1 ," + nomObject2 + " as ob2 ," +nomObject3+ 
    				" as ob3 ," +nomObject4+ " as ob4 ," +nomObject5+ 
    				" as ob5 ," +nomObject6+ " as ob6 " + " WHERE " +
    				"(ob1.landx LIKE '%" +condition1+ "%') " +
    				"AND (ob2.zgm43 LIKE '%" +condition2+ "%')" +
    				"AND (ob3.zzone_des LIKE '%" +condition3+ "%') " +
    				"AND (ob4.zregion_des LIKE '%" +condition4+ "%') " +
    				"AND (ob5.zsubregion_des LIKE '%" +condition5+ "%') " +
    				"AND (ob6.zdivision_des LIKE '%" +condition6+ "%') ");
    j'ai besoin d'afficher ce resultat !!

  11. #11
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    Non, cela ne va pas m'aider.
    Qu'est-ce que ta méthode getResultList doit te renvoyer?

  12. #12
    Membre confirmé Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Par défaut
    "getResultList" me renvoit une liste d'objet et la je dois afficher un tableau d'object

  13. #13
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    Alors pourquoi elle te renvoie une List<Object[]> au lieu d'une List<Object> ou d'un Object[] ?

  14. #14
    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
    Si tu es sûr de ce que chaque résultat ne devrait être retourné qu'une fois, fais une comparaison en rajoutant à ta query un DistinctRootEntityResultTransformer.

  15. #15
    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
    C'est ta query qui rertourne des éléments en double, il n'y a aps d'erreur dans le code lui même. Si tu en veux la preuve, il suffit de faire çà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(Arrays.deepToString(req.getResultList().toArray());
    Et t'aura, a priori, soit ceci:
    [[France ,espagne],[France ,espagne]]
    soit ceci
    [France ,espagne,France ,espagne]

  16. #16
    Membre confirmé Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Par défaut
    Vous avez raison ,je faisais fausse route ,c'est la requéte qui pose probléme !

    Merci à tous

Discussions similaires

  1. [Débutant] Probleme avec Arraylist
    Par elyaakoubi dans le forum VB.NET
    Réponses: 8
    Dernier message: 15/06/2011, 00h58
  2. probleme avec ArrayList
    Par guitariste dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 02/05/2008, 23h00
  3. probleme avec le changement dans une ArrayList
    Par Hisoka_Hunter dans le forum C#
    Réponses: 1
    Dernier message: 15/02/2008, 17h56
  4. Probleme avec ArrayList
    Par AoSiX dans le forum C#
    Réponses: 10
    Dernier message: 30/01/2008, 22h18
  5. [ArrayList] probleme avec add
    Par Magical dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 27/07/2007, 15h39

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