Java I';我试图用20个最近的用户输入填充一个数组。当我打印数组时,输出了错误的整数

Java I';我试图用20个最近的用户输入填充一个数组。当我打印数组时,输出了错误的整数,java,arrays,int,Java,Arrays,Int,我正在为一项任务做一个简单的游戏,除了这一部分之外,它是完整的,我似乎无法正确理解。游戏必须在一个数组中填入最近的20个招式,并在游戏结束后打印这些招式以及招式总数。例如,一个用户可能会移动25次,但只会打印移动6-25次。此外,数组长度必须为==20。我将插入相关方法: public void fillMoveStore(int [] array, int into) { if (moveCount <= array.length) { array

我正在为一项任务做一个简单的游戏,除了这一部分之外,它是完整的,我似乎无法正确理解。游戏必须在一个数组中填入最近的20个招式,并在游戏结束后打印这些招式以及招式总数。例如,一个用户可能会移动25次,但只会打印移动6-25次。此外,数组长度必须为==20。我将插入相关方法:

    public void fillMoveStore(int [] array, int into)
{
    if (moveCount <= array.length)
    {
        array[moveCount - 1] = into;
    }
    else
    {
        for(int i = 1; i <= (array.length - 1); i++)
        {
            array[i] = array[i - 1];
        }
        array[array.length - 1] = into;
    }   
}

public void displayMoves(int [ ] array)
{
    for(int i = 0; i <= (array.length -2); i++)
    {
        System.out.print(array[i] + outputText[34]);
    }
    System.out.print(array[array.length - 1] + outputText[33]);
}
public void fillMoveStore(int[]数组,int-into)
{

如果(moveCount只需使用
ArrayList
, 每一步,只要使用

myArray.add(move);
if(myArray.size() > 20){
    myArray.remove(0);
}

问题是这条线

array[i] = array[i - 1];
你把它向后移动了。你应该把元素向下移动以在数组的末尾腾出空间,但是你要把它们向上移动。试着反向移动

array[i-1] = array[i];

如果您使用的是集合,则使用deque更合适。但我假设分配需要数组。我还不熟悉ArrayList,但我将对此进行研究。谢谢你说得对!我想我缺少的一定是非常简单的东西。谢谢:)