java - 当 Java 中两个值相等时,为什么会出现交换错误?

标签 java swap

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

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/

相关文章:

java - 如何通过命令行将参数传递给maven settings.xml?

java - 在制作自定义 Maven 插件时,execute() 还是参数先出现?

java - 将 wsdl 转换为 JAR 文件时出现错误

java - 为什么 JDBC 不支持批量获取数据?

python - 在 Python 中如何实现交换变量?

c++ - 如何为我的类(class)提供交换功能?

c++ - 单链表交换函数(int, int)

java - 如何等待 `ReplyingKafkaTemplate` 的下一个响应?

c++ - 是否保证 std::swap(x, x) 保持 x 不变?

javascript - 在 div 之间交换类