Java错误: "incompatible types: int cannot be converted to Player

标签 java int bluej selection-sort

我的代码遇到了问题,并且不知道如何纠正收到的错误。我在包含 team[index] = temp; 的行中收到错误“不兼容的类型:int 无法转换为 Player”任何指导将不胜感激。我对 Java 很陌生,这是我第一次尝试使用选择排序。我尝试环顾四周并进行搜索,但在用它把头撞在 table 上三天后仍然没有找出这个错误。提前致谢!

public static void selectionSort(Player[] team, int team_size)
{
    int index;
    int smallestIndex;
    int minIndex;
    int temp;

    for (index = 0; index < team_size - 1; index++)
    {
        smallestIndex = index;

        for (minIndex = index + 1; minIndex < team_size; minIndex++)
            if(team[minIndex].getNumber() < team[smallestIndex].getNumber())
                smallestIndex = minIndex;
        temp = team[smallestIndex].getNumber();
        team[smallestIndex] = team[index];
        team[index] = temp;
    }
}

最佳答案

这里的问题就是错误的含义。参数teamPlayer对象的数组。 temp 只是一个 int。因此,当您尝试设置作为 Player 对象的 team[index] 时,它无法执行此操作。

您只是想交换排序中的两个玩家吗?也许 temp 应该是一个 Player

Player temp;

然后进行交换

temp = team[smallestIndex]; //returns the actual Player instance rather than getNumber();
team[smallestIndex] = team[index];
team[index] = temp;

此外,您可能不想传入 team_size,因为您可以使用 team.length 获取 Player 数组的长度。这样您就不必每次都传递正确的长度。你的 for 循环看起来像这样

for (index = 0; index < team.length; index++)

关于Java错误: "incompatible types: int cannot be converted to Player,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37145448/

相关文章:

php - 将二进制数组转换为十进制字符串奇怪的行为

java - 如何从哈希集中删除并返回对象?

java - 添加条件以接受 HashMap 中的特定条目

java - 使用java(jdbc)在mysql中插入地理空间数据类型(multipolygon)

java - java中的线程/同步

java - 枚举与 int 标志?

java - else 语句不打印行?

java - JSP web 应用程序 :javax. servlet.ServletException : java. lang.NoClassDefFoundError:

java - 错误: Main method not found in class Example_Applet,

php - 随机数插入 mySQL 不起作用