我想计算标准偏差,平均avarage等我试图写下面的代码。但它会抛出异常java.util.ConcurrentModificationException。我尝试修复它,但是显示为faild。如何避免“线程中的异常”main中的“java.util.ConcurrentModificationException”Java中的错误
我的代码:
package statistic;
import java.util.*;
public class StanderDeviation {
public static void main(String[] args) {
System.out.println("step 1:create a list of 10 numbers :");
List<Double> numbers = new ArrayList<Double>();
numbers.add(23.0);
numbers.add(92.0);
numbers.add(46.0);
numbers.add(55.0);
numbers.add(63.0);
numbers.add(94.0);
numbers.add(77.0);
numbers.add(38.0);
numbers.add(84.0);
numbers.add(26.0);
System.out.println("\n " +numbers);
System.out.println("step 2: average of 10 numbers : ");
double sum = 0;
for(double number : numbers)
{
sum= sum +number;
}
double average = sum/numbers.size();
System.out.println(sum + "/" + numbers.size() + " = " + average);
System.out.println("\nstep 3: difference between each number numbers and average :");
List<Double>listOfDifferences = new ArrayList<Double>();
for(double number : numbers)
{
double difference = number - average ;
listOfDifferences.add(difference);
System.out.printf("%2.2f", difference);
System.out.printf(" ");
}
System.out.println("\n\nstep 4: Square of above calculate difference :");
List<Double> squares = new ArrayList<Double>();
for(double difference : listOfDifferences)
{
double square = difference * difference ;
listOfDifferences.add(difference);
squares.add(square);
System.out.printf("%4.2f", square);
System.out.printf(" ");
}
System.out.println("\nstep 5:sum of Square calculate above :");
sum = 0;
for(double number : squares)
{
sum += number ;
}
System.out.println(sum);
System.out.println();
System.out.println("step 6: divide sum of Square by totle (numbers)-1 :");
double result = sum/(numbers.size()-1);
System.out.printf("%4.2f", result);
System.out.println();
System.out.println("\nstep 7: Stander Deviation is the Square root of obove result :");
double StanderDeviation = Math.sqrt(result);
System.out.printf("%4.2f", StanderDeviation);
}
}
这里是exeption错误提前
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at statistic.StanderDeviation.main(StanderDeviation.java:50)
感谢。
请勿修改您通过添加或删除这些项目遍历列表。 –
对不起,我不明白。我是新的Java。你能解释一下吗? – Faisal
Hope [this](http://stackoverflow.com/a/8189786/3288182)帮助 – Scar