Je trouve une erreur au traitement d'une Arraylist !!!

Fermé
Hanae1992 Messages postés 5 Date d'inscription lundi 7 janvier 2013 Statut Membre Dernière intervention 11 février 2013 - 11 févr. 2013 à 19:32
KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 - 11 févr. 2013 à 20:12
Bonjour,
Svp sa me donne une erreur dans l'execution et je ne comprends pas
C'est dans la Classe Graphe .
public ArrayList<Integer> path(int id_ss, int id_sd){
ArrayList<Integer> visit = null; ///// ====
ArrayList<Integer> chemins = null;

ArrayList<Integer> non_visit =new ArrayList<Integer>();

visit.add(id_ss); //on ajoute le sommet source à la liste des visités <---- Dans cette ligne

if (id_ss==id_sd) {
chemins.addAll(visit);
////si la source= la déstination ,on ajoute la liste des visités à la liste des chemins
}

ArrayList<Integer> voisin=this.neighbours(id_ss);//liste des voisins du sommet source



non_visit.addAll(voisin);
non_visit.removeAll(visit);

Iterator<Integer> it=non_visit.iterator();//parcours des sommets non visités
while(it.hasNext()){
ArrayList<Integer> v=new ArrayList<Integer>();
v.addAll(visit);
path((Integer)it.next(), id_sd);
}

return chemins;
}

1 réponse

KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 3 005
11 févr. 2013 à 19:44
L'erreur d'exécution c'est un NullPointerException ?

Il faut initialiser tes listes avant de les utiliser !

ArrayList<Integer> visit = new ArrayList<Integer>();
ArrayList<Integer> chemins = new ArrayList<Integer>();
1
Hanae1992 Messages postés 5 Date d'inscription lundi 7 janvier 2013 Statut Membre Dernière intervention 11 février 2013
11 févr. 2013 à 20:05
Ouii C'est Réglé ... Merci .. Mais j'ai un autre :$ dans le sens de la fonction si jamais id_ss est différente de id_sd la fonction ne retourne rien :s
0
KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 3 005
11 févr. 2013 à 20:12
Puisque tu n'ajoutes des données que dans ton if (id_ss==id_sd), du coup ta liste est vide, c'est donc normal que ça ne retourne aucun élément.
0