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

Hanae1992 Messages postés 5 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
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 19031 Statut Modérateur 3 020
 
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 Statut Membre
 
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 19031 Statut Modérateur 3 020
 
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