Mettre élément dans une lsite

Résolu
ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 - 5 mars 2007 à 13:44
ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 - 5 mars 2007 à 19:29
salut


je voulais mettre ma table dans une liste j'ai une table  sur mysql
avec deux colonnes transaction et code
1,a
1,c
2,d
3,a
3,b
4,c
alors j'aurais

une liste A= [ac,d,ab,c]

j'ai tenté ma cette méthode ne marche pas

Statement instruction = conn.createStatement();
          String sql = "select *from test";
          ResultSet resultat = instruction.executeQuery(sql);
 
      ArrayList A = new ArrayList();
      while(resultat.next()){
                 String nom = resultat.getString("code");
                 A.add(nom);
 
      }
alors le résultat de A =[a,c,d,a,b,c]

merci de bien vouloir m'aider

11 réponses

super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
5 mars 2007 à 19:23
   Yop,

  j pense pas que tu puisse puisque sur un Set t as pas de getter avec un index, il faudrait que ce soit des listes dans ce cas (rien ne t empeche de transformer ton Set en List et de faire un get dessus mais la j vois pas l intéret (qui plus est les iterateur sont + rapides que get(i)

++ Toinou
3
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
5 mars 2007 à 14:09
Yopla,

tu ferais mieux d utiliser des maps pour ca avec en clé par exemple
1
et en valeurs une liste avec ac

++ Toinou
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 mars 2007 à 14:17
Essaye plutôt :

String sTest = "";
String sTemp = "";
String sql = "select * from test order by transaction";
          ResultSet resultat = instruction.executeQuery(sql);
 
      ArrayList A = new ArrayList();
      while(resultat.next()){
                sTemp = resultat.getString("code");
                if (!sTemp.equals(sTest)) {
                      sTest = sTemp;
                     A.add(sTest);
                }
      }

Te reste plus qu'à adapter pour ajouter dans le hashmap
0
ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 1
5 mars 2007 à 15:03
voila le code

Statement instruction = conn.createStatement();
String sql = "select * from test";
ResultSet resultat = instruction.executeQuery(sql);
 
HashMap h = new HashMap();
while(resultat.next()){
String t= resultat.getString("transaction");
Object obj = h.get(t);
ArrayList a = null;
if (obj!=null){
   a = (ArrayList)obj;
}else{
   a = new ArrayList();
}
 a.add(resultat.getString("code"));
 h.put(t, a);
 
 
}


j'ai une liste {3=[c, d], 5=[a, b, c, d], 2=[a, c], 4=[b, c, d], 1=[a, b]}
mais comment parcourir résultat  de la liste h {3=[c, d], 5=[a, b, c, d], 2=[a, c], 4=[b, c, d], 1=[a, b]}




j'ai l'habitude avec les listes de faire  for (int i = 0; i < B.size(); i++) {
       String Q2 = B.get(i).toString(); par exemple si j'ai une liste A=[AB,AC,A]
j'aurais Q2 =AB,Q2=AC,A
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
5 mars 2007 à 15:21
Yopla et voila !

HashMap h = new HashMap();
Set hKeys = h.keySet();
Iterator it = hKeys.iterator();
while(it.hasNext()){
String key = (String) it.next();
System.out.println("la clé : " + key);
System.out.println("La liste associée : ");
List list = (List) h.get(key);
if((list==null)||(list.size()==0)){
System.out.println("liste vide");
}
else{
Iterator listIterator = list.iterator();
while(listIterator.hasNext()){
Object obj = listIterator.next();
System.out.println(obj.toString());
}
}
}
0
ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 1
5 mars 2007 à 16:16
voila
Set entries = h.entrySet();
// ... et leurs clés
      Set keys = h.keySet();


      Iterator ie = entries.iterator();
 Iterator ik = keys.iterator();
 
// on affiche chaque élément dans la console
 while (ie.hasNext())
   System.out.println("Clé: " + ik.next() + " associé à l'objet " + ie.next());

 le résultat


 Clé: 3 associé à l'objet 3=[c, d]
Clé: 5 associé à l'objet 5=[a, b, c, d]
Clé: 2 associé à l'objet 2=[a, c]
Clé: 4 associé à l'objet 4=[b, c, d]
Clé: 1 associé à l'objet 1=[a, b]

mais ce que je cherche c'est comment récupérer a chaque fois la valeur de l'objet

car par exemple si j'applique ce que je cherche sur l'exemple alors
for i=1jusqu'à 5 faire (clé) j'igore cette déclaration
arraylist X = l'objet j'ignore comment récupérer la valeur a chaque fois


 
0
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
5 mars 2007 à 17:07
Yop !!

Bon la j t ai quand meme mis plus que sur la piste je pense !!
pour info toi tu met des objets dans ta liste donc je sais pas ce qu'est "la valeur" de ton objet (un Integer??).
Bref si tu regarde un peu ce que je t ai filé pour parcourir tout tu devrai t en sortir. J ai meme mis des S.o.println pour t indiquer ou on en est !

Si t y arrive toujours pas essaye d expliquer clairement ce que tu cherches, but. J veux bien t aider mais pas t assister !!!

++ Toinou
0
ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 1
5 mars 2007 à 17:14
ce que je cherche
j'ai le code qui récupere à chaque fois la liste
Iterator iter = hashMap.keySet().iterator();
while (iter.hasNext()){

ArrayList al = hashMap.get(iter.next());

}
mais je voulais utiliser la boucle for car j'ignore comment la utiliser
<!-- / message --><!-- sig -->
0
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
5 mars 2007 à 17:48
Hein ??????

c est quoi ce truc mystique tu sais pas faire une boucle for en java alors que tu fais des map, du JDBC ... ?????

for(int i = 0 ; i<al.size();i++){
Object o = al.get(i);
}
0
ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 1
5 mars 2007 à 18:28
alors tu m'as pas compris car je cherche a faire une boucle for avec des map aulien d'utiliser while (iter.hasNext()){
0
ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 1
5 mars 2007 à 19:29
merci ami
0
Rejoignez-nous