jeremieT
Messages postés14Date d'inscriptionmercredi 18 février 2009StatutMembreDernière intervention10 juin 2009
-
21 avril 2009 à 17:43
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 2011
-
21 avril 2009 à 22:41
bonjour,
dans un projet je dois comparer deux listes de fichiers et retourner une troisième liste avec uniquement les fichiers qui sont dans la première mais pas dans la deuxième.
J'ai donc écrit une classe pour cela mais éclipse me renvoi : java.lang.NullPointerException
Pouriez vous m'aider a trouver l'erreur? apparemment c'est un indice qui pointe nul part mais je ne le trouve pas:(
public class Comparerlistes {
static String [] listeafaire ;
static int nb = 0;
public static String[] comparateur(String[] listeDD, String[] listefiches)
{
int k = 0;
for(int i=0;i<listeDD.length;i++)
{
for(int j=0;j<listefiches.length;j++)
{
if(listeDD[i]== listefiches[j])
{
nb = nb+1;
}
}
if(nb == 0)
{
listeafaire[k] = listeDD[i];
k++;
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 21 avril 2009 à 18:00
Salut,
Il faut que tu instancie ton tableau listeafaire :
public class Comparerlistes {
public static List<String> comparateur(String[] listeDD, String[] listefiches)
{
List<String> listeafaire = new LinkedList<String>(); // Aucun intérêt de le déclarer en static niveau classe, ca prend bien moins de ressource ici !
int nb = 0; // IDEM
int k = 0;
for(int i=0;i<listeDD.length;i++)
{
for(int j=0;j<listefiches.length;j++)
{
if(listeDD[i]== listefiches[j])
{
nb = nb+1;
}
}
/*if(nb == 0) pourquoi ne prendre que le premier ? */
listeafaire.add(listeDD[i];
}
jeremieT
Messages postés14Date d'inscriptionmercredi 18 février 2009StatutMembreDernière intervention10 juin 2009 21 avril 2009 à 19:03
merci!
en fait je veux que dans le tableau retourné il n'y ait que le nom des fichiers de la première liste qui ne sont pas dans la seconde.
c'est pour cela que je met le compteur nb qui s'incrémente de 1si il y'a une correspondance. lorsque toutes les case du deuxième tableau sont parcouru si nb est toujours égal a 0 c'est que le fichier n'est pas dans la seconde et donc je le met dans le 3eme tableau.
je prefere untiliser des tableaux de string partout car je fais pleins d'operations dessus dans d'autres classes.
donc si vous avez une autre solusion n'esitez pas a me le dire:)
merci d'avance
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 21 avril 2009 à 22:41
Salut,
Darksidious a raison !!!
Mais si tu tiens vraiment à utiliser un tableau, tu peux garder le code de Darksidious et au lieu de renvoyer la liste, tu récupères sa taille, tu instancies ton tableau de string et tu le remplis des éléments contenus dans la liste puis tu renvoies le tableau.