Supprimer un objet dans un liste [Résolu/Fermé]

Signaler
Messages postés
10
Date d'inscription
lundi 13 février 2017
Statut
Membre
Dernière intervention
20 avril 2017
-
Messages postés
537
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
5 mai 2018
-
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

Messages postés
537
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
5 mai 2018
148
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
Messages postés
10
Date d'inscription
lundi 13 février 2017
Statut
Membre
Dernière intervention
20 avril 2017

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 ???????
Messages postés
537
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
5 mai 2018
148
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)
Messages postés
10
Date d'inscription
lundi 13 février 2017
Statut
Membre
Dernière intervention
20 avril 2017
>
Messages postés
537
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
5 mai 2018

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
Messages postés
537
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
5 mai 2018
148
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