I've created an array of size x . And want to add an element to the first empty index in the array .For example , if the array's size is 10 and indexes 1 and 2 are taken, then the element is added to index 3.
If the array is an int
array you can do
for(int i=0; i < array.length; i++)
if(array[i] == 0) {
array[i] = newValue;
break;
}
if it is an Object
array you can do
for(int i = 0; i < array.length; i++)
if(array[i] == null) {
array[i] = newObject;
break;
}
Create the array of size x.
Create a stack of size x which indicates all free indexes. Push all indexes (in reverse order) to the stack.
When you try to add an element to the array pop from the stack the next free index. Use the index to insert to the array.
If an element is removed, push the index back to the stack to indicate that it is free and nullify the element in the array.
If you want to add an element and the stack is empty i.e. the array is full, well you decide what to do.
Your other option would be to loop over the array to find the next "free" spot which would be indicated by a null.
In the responses above, there is no early termination of the for-loop after the first empty index is found. To avoid all empty indexes being populated, add a break statement as part of the conditional statement.
for(int i = 0; i < array.length; i++)
{
if(array[i] == null)
{
array[i] = newObject;
break;
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With