프로젝트 오일러 문제 7에 대한 빠른 프로그램에서 오류가 계속 발생합니다.while 루프 내에서 foreach 루프에 오류가 발생하는 이유는 무엇입니까?
Java에 익숙하지 않습니다. 문제 7에 대한 Python 코드를 Java로 옮겨서 할 수 있는지 확인했습니다. Java를 게임보다 앞서 가르치고 있습니다.
내 파이썬 프로그램의 코드는 다음과 같습니다
는no = 2
print(3 % 2)
primes = [2]
while len(primes) != 10001:
no = no + 1
no2 = 0
for each in primes:
if no % each != 0:
no2 = no2 + 1
if len(primes) == no2:
print(primes[-1])
primes.append(no)
print("Final answer is: " + str(primes[-1]))
내 자바 프로그램에 대한 코드는 다음과 같습니다
import java.util.ArrayList;
import java.util.List;
public class P7Euler {
public static void main(String[] args) {
int no = 2;
int no2 = 0;
List<Integer> primes = new ArrayList<Integer>();
primes.add(2);
while (primes.size() != 20){
no = no + 1;
no2 = 0;
for(int i : primes){
if(no % i != 0){
no2 = no2 + 1;
if(primes.size() == no2){
System.out.println(primes.get(primes.size() - 1));
primes.add(no);
}
}
}
}
System.out.println("The final answer is: " + primes.get(primes.size() - 1));
}
}
오류 메시지 :
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at Test1.examples.P7Euler.main(P7Euler.java:16)
편집 : 코드가 있었다 틀린, 내가 원래 사용했던 for 루프는 지금 거기에있다.
사용중인 Java 버전은 무엇입니까? – Matthieu
정말 자바 코드입니까? – A4L
@ A4L 자바 8과 그 "lambdas"(부호없는 지원 (시력)보다 선호) – Matthieu