gpt4 book ai didi

java - 移动数组中的元素

转载 作者:行者123 更新时间:2023-12-01 13:08:59 24 4
gpt4 key购买 nike

我有一个对象数组,我想在这个数组中添加元素并同时按升序对它们进行排序。虽然我尝试了很多组合,但我总是遇到 java.lang.ArrayIndexOutOfBoundsException。这是我的代码的一部分:

public boolean insert(Person p)
{
for(int i=0;i<=size();i++)
{
if (c==0)
{
array[0] = p;
c++;
return true;
}
else
{
if (p.compareTo(array[i])==-1)
{
array[i]=p;
c++;
for(int j = size(); j>i; j--)
{
array[j]=array[j-1];
}
}
else if((p.compareTo(array[i])==1))
{
array[i+1]=p;
c++;
for (int j=(size()-1);j>= i+1; j--)
{
array[j+1]=array[j];
}
}
else
{
return false;
}
return true;
}
}
return false;
}

private int c;
private Person array[];
public SortedPersonList()
{
this.array = new Person[c];
}
public int size()
{
return c;
}

最佳答案

删除 for(int i=0;i<=size();i++) 中的等号。即改为

for(int i=0;i<size();i++)

数组索引来自 0size-1 。所以array[size()]位于数组之外。因此出现错误。

关于java - 移动数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23043071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com