繁体   English   中英

向第一个空数组的索引添加元素

[英]Adding an element to the first empty array's index

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

创建大小为x的数组。
创建一个大小为x的堆栈,该堆栈指示所有可用索引。 将所有索引(按相反顺序)推入堆栈。
当您尝试将元素添加到数组时,从堆栈弹出的下一个空闲索引。 使用索引插入到数组。
如果删除了元素,则将索引推回堆栈以指示它是空闲的,并使数组中的元素无效。
如果您想添加一个元素并且堆栈为空,即数组已满,那么您可以决定要做什么。

您的另一个选择是遍历数组以找到下一个“空”点,该点将由null表示。

如果数组是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;
    }

遍历数组,直到找到零/空。 例如,

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);
}

在上面的响应中,在找到第一个空索引之后,没有for循环的提前终止。 为避免填充所有空索引,请在条件语句中添加一个break语句。

for(int i = 0; i < array.length; i++)
{
    if(array[i] == null)
    {
        array[i] = newObject;
        break;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM