首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于错误的困惑:在Main.main(Main.java:25)的线程"main“java.lang.ArrayIndexOutOfBoundsException中出现异常:0

关于错误的困惑:在Main.main(Main.java:25)的线程"main“java.lang.ArrayIndexOutOfBoundsException中出现异常:0
EN

Stack Overflow用户
提问于 2015-05-28 04:31:55
回答 2查看 71关注 0票数 0

我知道以前有人问过关于这个错误的问题,但我的情况与其他所有人不同。我正在编写计算数据集的均值、方差和标准差的代码。在编译代码时我没有得到任何错误,但是当我尝试运行代码时,我得到了一个类似这样的错误: Exception in thread "main“java.lang.ArrayIndexOutOfBoundsException: 0 at Main.main(Main.java:25)

代码语言:javascript
复制
/**   
 * Main class of the Java program. 
 * 
 */

public class Main {

    public static void main(String[] args) {
        int sum = 0;
        double xBar = 0;
        double [] dataSet = {1,2,3,4}; // add data here
        int xLenght = dataSet.length;
        double [] diffrenceSquared={};
        double devSum = 0;
        double variance = 0;
        double standardDeviation = 0;
         for (double n: dataSet)
         {
            sum += n;    
         }
          xBar = sum/xLenght;

          for (int i=0; i<dataSet.length; i++)
          {
            diffrenceSquared[i] = (xBar-dataSet[i])*(xBar-dataSet[i]);
          } 
          for (double n:dataSet)
        {
              devSum += n;
        }    
        variance = devSum/xLenght;

        standardDeviation = java.lang.Math.sqrt(variance);
        System.out.println("x bar ="+xBar);
        System.out.println("variance ="+ variance);
        System.out.println("Standard Deviation ="+ standardDeviation);
    }
}

请帮帮我!

EN

回答 2

Stack Overflow用户

发布于 2015-05-28 04:34:23

您已使用以下声明将diffrenceSquared声明为零长度数组:

代码语言:javascript
复制
double [] diffrenceSquared={};

这意味着没有要分配的元素,并且每个索引都超出了界限。

您试图在一个以dataSet长度为界限的循环中将元素赋值给diffrenceSquared,因此将其声明为该长度。

代码语言:javascript
复制
double[] diffrenceSquared = new double[dataSet.length];
票数 2
EN

Stack Overflow用户

发布于 2015-05-28 04:33:46

代码语言:javascript
复制
double [] diffrenceSquared = new double[dataSet.length];

在Java中,数组的大小是不可调整的,因此您必须从一开始就为它们指定正确的大小。

或者,您可以使用更灵活的Lists。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30492583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档