我创建了一个x大小的数组。并且想要在数组中的第一个空索引中添加一个元素。例如,如果数组的大小为10并且索引为1和2,则该元素将添加到索引3中。
答案 0 :(得分:1)
创建大小为x的数组 创建一个大小为x的堆栈,指示所有空闲索引。将所有索引(按相反顺序)推送到堆栈 当您尝试向数组添加元素时,从堆栈中弹出下一个空闲索引。使用索引插入数组 如果删除了一个元素,则将索引推回到堆栈以指示它是空闲的并使数组中的元素无效 如果你想添加一个元素并且堆栈是空的,即数组已满,那么你决定做什么。
你的另一个选择是遍历数组以找到下一个" free"将由null表示的点。
答案 1 :(得分:1)
如果数组是int
数组,则可以执行
for(int i=0; i < array.length; i++)
if(array[i] == 0) {
array[i] = newValue;
break;
}
如果它是Object
数组,则可以
for(int i = 0; i < array.length; i++)
if(array[i] == null) {
array[i] = newObject;
break;
}
答案 2 :(得分:0)
循环遍历数组,直到找到零/ null。例如,
int a[] = new int[100];
int x; //Number to be inserted
for(int i=0;i<a.length;i++)
{
if(a[i]==0)
a[i]=x;
}
object a[] = new object[100];
int x;
for(int i=0;i<a.length;i++)
{
if(a[i]==null)
a[i]= new Integer(x);
}
答案 3 :(得分:0)
在上面的响应中,找到第一个空索引后没有提前终止for循环。要避免填充所有空索引,请在条件语句中添加break语句。
for(int i = 0; i < array.length; i++)
{
if(array[i] == null)
{
array[i] = newObject;
break;
}
}