我不确定为什么会收到此错误,也不知道如何解决。我收到运行时异常:

for(int j = 0; j < instances[maxInstance].length; j++){

                            centroids[orphanCentroid][j]=instances[maxInstance][j];

                       }

                           for(int j = 0; j < instances[maxInstance].length; j++){
                                {
                                double temp = centroids[maxInstance][j] ;
                                centroids[maxInstance][j] = centroids[orphanCentroid][j] ;
                                centroids[orphanCentroid][j] = temp ;

                           }


错误是:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
    at kmeans.KMeans.cluster(KMeans.java:75)
    at kmeans.HW1.main(HW1.java:36)


它发生在这一行:

  double temp = centroids[maxInstance][j] ;

最佳答案

我觉得你需要

for(int j = 0; j < centroids[maxInstance].length; j++){

}


在第二个for循环上。

关于java - 当Java中两个值相等时,为什么会出现交换错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26027666/

10-11 20:52