I want to do a simple dynamic array of ints in my j2me application,
The only dynamic array I see is "java.util.Vector" and this one doesn't seem to accept an int as a new element (only wants Objects).
So how do I go around fixing that problem?
I want to do a simple dynamic array of ints in my j2me application,
The only dynamic array I see is "java.util.Vector" and this one doesn't seem to accept an int as a new element (only wants Objects).
So how do I go around fixing that problem?
You need to box the int in an Integer.
v.addElement(new Integer(1));
public class DynamicIntArray
{
private static final int CAPACITY_INCREMENT = 10;
private static final int INITIAL_CAPACITY = 10;
private final int capacityIncrement;
public int length = 0;
public int[] array;
public DynamicIntArray(int initialCapacity, int capacityIncrement)
{
this.capacityIncrement = capacityIncrement;
this.array = new int[initialCapacity];
}
public DynamicIntArray()
{
this(DEFAULT_CAPACITY_INCREMENT, DEFAULT_INITIAL_CAPACITY);
}
public int append(int i)
{
final int offset = length;
if (offset == array.length)
{
int[] old = array;
array = new int[offset + capacityIncrement];
System.arraycopy(old, 0, array, 0, offset);
}
array[length++] = i;
return offset;
}
public void removeElementAt(int offset)
{
if (offset >= length)
{
throw new ArrayIndexOutOfBoundsException("offset too big");
}
if (offset < length)
{
System.arraycopy(array, offset+1, array, offset, length-offset-1);
length--;
}
}
}
Doesn't have a setAt() method, but I'm sure you get the idea.