Problème de Vector qui imprime pas ^^

Résolu/Fermé
Messages postés
48
Date d'inscription
dimanche 5 mars 2006
Statut
Membre
Dernière intervention
9 mars 2007
-
Messages postés
5367
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
27 janvier 2022
-
Bonjour a tout le monde...
Presque tout est dans le titre...
Voici un code:

Vector<Vector<Comparable>> informationDecors = new Vector<Vector<Comparable>>();
Vector<Comparable> temp = new Vector<Comparable>(17);
        int index = 0;
            while(info.next()){
                if(temp.isEmpty()){
                    temp.add(0, info.getString("nom_decor"));
                    temp.add(1, info.getString("image_decor"));
                    temp.add(2, info.getInt("cutx"));
                    temp.add(3, info.getInt("cuty"));
                    temp.add(4, info.getInt("cutlengthx"));
                    temp.add(5, info.getInt("cutlengthy"));
                    temp.add(6, info.getInt("repeterx"));
                    temp.add(7, info.getInt("repetery"));
                    temp.add(8, info.getInt("id_tile"));
                    temp.add(9, info.getBoolean("autotile"));
                    temp.add(10, info.getBoolean("anime"));
                    temp.add(11, info.getInt("position_x"));
                    temp.add(12, info.getInt("position_y"));
                    temp.add(13, info.getInt("carte_x"));
                    temp.add(14, info.getInt("carte_y"));
                    temp.add(15, info.getInt("idcarte"));
                    temp.add(16, info.getBoolean("passable"));
                    temp.add(17, info.getInt("z_index"));
                }
                else{
                    temp.set(0, info.getString("nom_decor"));
                    temp.set(1, info.getString("image_decor"));
                    temp.set(2, info.getInt("cutx"));
                    temp.set(3, info.getInt("cuty"));
                    temp.set(4, info.getInt("cutlengthx"));
                    temp.set(5, info.getInt("cutlengthy"));
                    temp.set(6, info.getInt("repeterx"));
                    temp.set(7, info.getInt("repetery"));
                    temp.set(8, info.getInt("id_tile"));
                    temp.set(9, info.getBoolean("autotile"));
                    temp.set(10, info.getBoolean("anime"));
                    temp.set(11, info.getInt("position_x"));
                    temp.set(12, info.getInt("position_y"));
                    temp.set(13, info.getInt("carte_x"));
                    temp.set(14, info.getInt("carte_y"));
                    temp.set(15, info.getInt("idcarte"));
                    temp.set(16, info.getBoolean("passable"));
                    temp.set(17, info.getInt("z_index"));
                }
                informationDecors.insertElementAt(temp,index);
                index++;
            }
            temp = null;
            info = null;

Dans lequel info est de type ResultSet et contient une série d'informations que j'accède successivement avec un while(info.next()).

Ce morceau de code devrait "en toute logique" (enfin je pense) me transformer mon ResultSet en un objet de type Vector de Vector de Comparable qui contiendrais toutes les informations nécessaire concernant des "objets virtuels" (des décors dans un jeu)...
Seulement, j'ai un gros souci que je comprend pas trop: Mon Vector<Vector<Comparable>> se créé correctement avec autant de Vector<Comparable> que d'enregistrement dans ma base de données et chacun contenant 17 champs Comparable avec les informations voulues....Mais allez savoir pourquoi, au lieu de contenir les information de chaque ligne de la BDD, le Vector<Vector<Comparable>> me rend égal au dernier élément, tous les resultats précédent.....Autrement dit, que j'accède a l'index 0, 1, 2, 3 ou 4, les valeurs retournées sont toute identique à l'index 4.....

Quelqu'un aurait-il une suggestion quand a ce problème?

Merci d'avance

2 réponses

Messages postés
5367
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
27 janvier 2022
111
Salut,

bon c'est pas forcement une solution mais je ne comprends pas tres bien ton
if(temp.isEmpty())

puis c'est assez long quand meme pourquoi ne fais tu pas simplement

Vector<Vector<Comparable>> informationDecors = new Vector<Vector<Comparable>>();

int index = 0;
while(info.next()){
    Vector<Comparable> temp = new Vector<Comparable>(17);
    temp.add(info.getString("nom_decor"));
    temp.add(info.getString("image_decor"));
    temp.add(info.getInt("cutx"));
    temp.add(info.getInt("cuty"));
    temp.add(info.getInt("cutlengthx"));
    temp.add(info.getInt("cutlengthy"));
    temp.add(info.getInt("repeterx"));
    temp.add(info.getInt("repetery"));
    temp.add(info.getInt("id_tile"));
    temp.add(info.getBoolean("autotile"));
    temp.add(info.getBoolean("anime"));
    temp.add(info.getInt("position_x"));
    temp.add(info.getInt("position_y"));
    temp.add(info.getInt("carte_x"));
    temp.add(info.getInt("carte_y"));
    temp.add(info.getInt("idcarte"));
    temp.add(info.getInt("z_index"));
    informationDecors.add(temp);
}

fin bon tu peux aussi simplifier le et faire une boucle pour récupérer les élément de info

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
48
Date d'inscription
dimanche 5 mars 2006
Statut
Membre
Dernière intervention
9 mars 2007

Je rajouterais que pour tenter de trouver une solution j'ai identifié les resultats contenu dans le Vector<Vector<Comparable>> juste après la ligne informationDecors.insertElementAt(temp,index); et après la boucle....Le problème n'apparait que une fois la boucle terminée