将元素添加到第一个空数组的索引中

时间:2014-09-18 17:07:57

标签: java arrays indexing

我创建了一个x大小的数组。并且想要在数组中的第一个空索引中添加一个元素。例如,如果数组的大小为10并且索引为1和2,则该元素将添加到索引3中。

4 个答案:

答案 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;
    }
}