Supprimer un objet dans un liste

Résolu/Fermé
salma_dora Messages postés 10 Date d'inscription lundi 13 février 2017 Statut Membre Dernière intervention 20 avril 2017 - 9 mars 2017 à 18:45
Kartzull Messages postés 537 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 5 mai 2018 - 9 mars 2017 à 19:50
Bonjour,
j'ai une question sur la suppression d'objet dans la liste
j'essaye un code mais dans le déroulement il y a le problème suivant:
a chaque itération supprime un nombre parmi les autre nombre qui se trouve dans la liste mais lorsque arrive a la liste suivante [2, 3, 6] ne choisit pas 2 ou 3 ou 6 programme choisit le nombre 1 malgré ne trouve pas dans mon liste pourquoi??? c'est ça mon problème
voila mon code
int[][] conn = {{0,1,1,0,0,0},  // 0
			{ 1,0,1,0,0,0},  // 1
		  
			{ 1,1,0,0,0,0},  // 2
			{ 0,0,0,0,1,0},  // 3
			{ 0,0,0,1,0,0},  // 4
			{ 0,0,0,0,0,0},  // 5
			};
   
     List<Integer> VList= new ArrayList<Integer>();
     Random rnd=new Random();
     Graph1 G = new Graph1(conn);
    for (int iv=0; iv <= NNodes;iv++){
			VList.add(iv);}
                     while(!VList.isEmpty()){
			System.out.println(VList);
		int n=rnd.nextInt(VList.size());
		  System.out.println(n);
		   VList.remove(VList.indexOf(n));
			System.out.println(VList);
			
		    }
	  
	   
		
}
   

}

le résultat





1 réponse

Kartzull Messages postés 537 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 5 mai 2018 138
9 mars 2017 à 18:53
Tu utilises :

VList.remove(VList.indexOf(n));

Tu veux donc supprimer le chiffre n dans le tableau et non le chiffre à l'emplacement n dans le tableau ? C'est ce qui est fait ici.
L'erreur est donc, je pense, qu'il ne trouve pas le chiffre n=1 dans le tableau de [2,3,6] et il génère donc une erreur
0
salma_dora Messages postés 10 Date d'inscription lundi 13 février 2017 Statut Membre Dernière intervention 20 avril 2017
Modifié par salma_dora le 9/03/2017 à 19:03
merci monsieur mais comment résolu ça ,c'est ça mon problème je veux supprime un nombre parmi les nombre 2,3,6 pas l'indice je pense que le problème dans le Random ne choisit pas un nombre parmi les nombre 2,3,6 comment resolu ca ???????
0
Kartzull Messages postés 537 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 5 mai 2018 138
9 mars 2017 à 19:24
Tu peux vérifier qu'il existe dans le tableau (méthode longue car il recommence jusqu'à en avoir un existant) avec <array>.contains(n)
0
salma_dora Messages postés 10 Date d'inscription lundi 13 février 2017 Statut Membre Dernière intervention 20 avril 2017 > Kartzull Messages postés 537 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 5 mai 2018
9 mars 2017 à 19:32
J’utilise le langage java , le problème dans la méthode random je ne trouve pas comment j'utilise random pour choisi un nombre parmi les nombres qui se trouve dans la liste ,mon code lorsque arrive a la liste [2,3,6] ne choisi pas 2 ,ou 3 ou 6 elle choisi un autre nombre 1 qui ne trouve pas dans [2,3,6] . merci pour votre réponses
0
Kartzull Messages postés 537 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 5 mai 2018 138
9 mars 2017 à 19:50
Oui, il choisi pas soit 2,3 ou 6, il choisi 1,2 ou 3 (ou : 0,1 ou 2) car il y à 3 nombres. Il choisi le nombre d’éléments qu'il y à et non leur valeur
0