Programme java, erreur dans le code
Tartif
-
Tartif -
Tartif -
Bonjour tout le monde,
J'ai un problème avec mon programme java. Je veux afficher des nombres premiers. Je les calcule puis les mets dans un vector. Puis je parcours ce vector avec un iterator, et je rajoute dans le vector des nombres premiers. Mais à l'éxécution, j'ai cette erreur :
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
je vous montre mon code :
private static void calculer (int limite) {
premiers.addElement(new Integer(2));
Iterator itPrem = premiers.iterator();
boolean bool;
for(int i = 3; i <= limite; i++) { // on commence à 3 car on sait que 2 est déjà un nombre premier !
bool = true;
while (itPrem.hasNext()){
int z = (Integer)itPrem.next();
if (i % z == 0){
bool = false;
}
}
if (bool == true) {
premiers.add(new Integer(i)); //ajout du nombre premier dans le vector
}
}
} // calculer
L'erreur se produit au moment où on ajoute dans le vector!
Pouvez-vous m'aider s'il vous plait.
Je dois utiliser un iterator obligatoirement.
Merci d'avance pour votre aide
J'ai un problème avec mon programme java. Je veux afficher des nombres premiers. Je les calcule puis les mets dans un vector. Puis je parcours ce vector avec un iterator, et je rajoute dans le vector des nombres premiers. Mais à l'éxécution, j'ai cette erreur :
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
je vous montre mon code :
private static void calculer (int limite) {
premiers.addElement(new Integer(2));
Iterator itPrem = premiers.iterator();
boolean bool;
for(int i = 3; i <= limite; i++) { // on commence à 3 car on sait que 2 est déjà un nombre premier !
bool = true;
while (itPrem.hasNext()){
int z = (Integer)itPrem.next();
if (i % z == 0){
bool = false;
}
}
if (bool == true) {
premiers.add(new Integer(i)); //ajout du nombre premier dans le vector
}
}
} // calculer
L'erreur se produit au moment où on ajoute dans le vector!
Pouvez-vous m'aider s'il vous plait.
Je dois utiliser un iterator obligatoirement.
Merci d'avance pour votre aide
A voir également:
- Programme java, erreur dans le code
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Waptrick java voiture - Télécharger - Jeux vidéo
7 réponses
Evites de faire plusieurs posts, les posts sans réponse se repèrent très bien, c'est juste que personne n'est compétent et disponible dans ce domaine. Si tu veux te retrouver en haut de la liste, fais simplement un up
Salut,
je veux bien essayer de t'aider mais la il manque une partie du code et mets tout ca entre balises code car après une dûre journée sur eclipse ca pique les yeux là !
A plus tard
Toopa
je veux bien essayer de t'aider mais la il manque une partie du code et mets tout ca entre balises code car après une dûre journée sur eclipse ca pique les yeux là !
A plus tard
Toopa
Bonjour,
Tu essaies de modifier un vector qui est déjà en cours de modification.
Renseigne-toi du côté de synchronized.
Tu essaies de modifier un vector qui est déjà en cours de modification.
Renseigne-toi du côté de synchronized.
Désolé blocks,
Merci latoopa, voici tout mon code!
Je sais biboo que c'est ça l'erreur, j'ai fais un peu de recherche, mais je ne sais pas comemnt corriger!
Merci latoopa, voici tout mon code!
Je sais biboo que c'est ça l'erreur, j'ai fais un peu de recherche, mais je ne sais pas comemnt corriger!
/**
* Premiers - Liste des nombre premiers avec un java.util.Vector
*
* - Les premiers déjà trouvés sont stockés dans un java.util.Vector
* - Pour tester si k est premier, on essaie de le diviser par les premiers déjà trouvés
*
*
*/
import java.util.*;
public class Premiers {
private static java.util.Vector premiers;
private static void calculer (int limite) {
premiers.addElement(new Integer(2));
Iterator itPrem = premiers.iterator();
boolean bool;
for(int i = 3; i <= limite; i++) { // on commence à 3 car on sait que 2 est déjà un nombre premier !
bool = true;
while (itPrem.hasNext()){
int z = (Integer)itPrem.next();
if (i % z == 0){
bool = false;
}
}
if (bool == true) {
premiers.add(new Integer(i)); //ajout du nombre premier dans le vector
}
}
} // calculer
private static void afficher (int limite) {
Iterator itPrem = premiers.iterator();
int cpt = 0;
while (itPrem.hasNext()) {// tant qu'il y a quelque chose dans le vector
System.out.print(itPrem.next() + " "); // on affiche l'élément
cpt++;
if(cpt == 10) {// si le compteur est égal à 10
System.out.print("\n"); // on va à la ligne, car on doit mettre que 10 éléments par ligne
cpt = 0;
}
}
System.out.println ("\n" + "Il y a " + premiers.size() + " nombre(s) premier compris entre 0 et " + limite + ".");
} // afficher
public static void main (String[] args) {
if (args.length != 1) {
System.out.println("La commande est: java Premiers limite");
} else {
premiers = new java.util.Vector();
int limite = Integer.parseInt(args[0]);
calculer(limite);
afficher(limite);
}
} // main
} // Premiers
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Désolé blocks,
Merci latoopa, voici tout mon code!
Je sais biboo que c'est ça l'erreur, j'ai fais un peu de recherche, mais je ne sais pas comemnt corriger!
Merci latoopa, voici tout mon code!
Je sais biboo que c'est ça l'erreur, j'ai fais un peu de recherche, mais je ne sais pas comemnt corriger!
/**
* Premiers - Liste des nombre premiers avec un java.util.Vector
*
* - Les premiers déjà trouvés sont stockés dans un java.util.Vector
* - Pour tester si k est premier, on essaie de le diviser par les premiers déjà trouvés
*
*
*/
import java.util.*;
public class Premiers {
private static java.util.Vector premiers;
private static void calculer (int limite) {
premiers.addElement(new Integer(2));
Iterator itPrem = premiers.iterator();
boolean bool;
for(int i = 3; i <= limite; i++) { // on commence à 3 car on sait que 2 est déjà un nombre premier !
bool = true;
while (itPrem.hasNext()){
int z = (Integer)itPrem.next();
if (i % z == 0){
bool = false;
}
}
if (bool == true) {
premiers.add(new Integer(i)); //ajout du nombre premier dans le vector
}
}
} // calculer
private static void afficher (int limite) {
Iterator itPrem = premiers.iterator();
int cpt = 0;
while (itPrem.hasNext()) {// tant qu'il y a quelque chose dans le vector
System.out.print(itPrem.next() + " "); // on affiche l'élément
cpt++;
if(cpt == 10) {// si le compteur est égal à 10
System.out.print("\n"); // on va à la ligne, car on doit mettre que 10 éléments par ligne
cpt = 0;
}
}
System.out.println ("\n" + "Il y a " + premiers.size() + " nombre(s) premier compris entre 0 et " + limite + ".");
} // afficher
public static void main (String[] args) {
if (args.length != 1) {
System.out.println("La commande est: java Premiers limite");
} else {
premiers = new java.util.Vector();
int limite = Integer.parseInt(args[0]);
calculer(limite);
afficher(limite);
}
} // main
} // Premiers
Désolé blocks,
Merci latoopa, voici tout mon code!
Je sais biboo que c'est ça l'erreur, j'ai fais un peu de recherche, mais je ne sais pas comemnt corriger!
Merci latoopa, voici tout mon code!
Je sais biboo que c'est ça l'erreur, j'ai fais un peu de recherche, mais je ne sais pas comemnt corriger!
/**
* Premiers - Liste des nombre premiers avec un java.util.Vector
*
* - Les premiers déjà trouvés sont stockés dans un java.util.Vector
* - Pour tester si k est premier, on essaie de le diviser par les premiers déjà trouvés
*
*
*/
import java.util.*;
public class Premiers {
private static java.util.Vector premiers;
private static void calculer (int limite) {
premiers.addElement(new Integer(2));
Iterator itPrem = premiers.iterator();
boolean bool;
for(int i = 3; i <= limite; i++) { // on commence à 3 car on sait que 2 est déjà un nombre premier !
bool = true;
while (itPrem.hasNext()){
int z = (Integer)itPrem.next();
if (i % z == 0){
bool = false;
}
}
if (bool == true) {
premiers.add(new Integer(i)); //ajout du nombre premier dans le vector
}
}
} // calculer
private static void afficher (int limite) {
Iterator itPrem = premiers.iterator();
int cpt = 0;
while (itPrem.hasNext()) {// tant qu'il y a quelque chose dans le vector
System.out.print(itPrem.next() + " "); // on affiche l'élément
cpt++;
if(cpt == 10) {// si le compteur est égal à 10
System.out.print("\n"); // on va à la ligne, car on doit mettre que 10 éléments par ligne
cpt = 0;
}
}
System.out.println ("\n" + "Il y a " + premiers.size() + " nombre(s) premier compris entre 0 et " + limite + ".");
} // afficher
public static void main (String[] args) {
if (args.length != 1) {
System.out.println("La commande est: java Premiers limite");
} else {
premiers = new java.util.Vector();
int limite = Integer.parseInt(args[0]);
calculer(limite);
afficher(limite);
}
} // main
} // Premiers