J. Maes J. Maes - 6 months ago 9
Java Question

Add object to ArrayList at specified index

I think it's a fairly simple question, but I can't figure out how to do this properly.

I've got an empty arraylist:

ArrayList<object> list = new ArrayList<object>();


I've got some objects I want to add and each object has to be at a certain position. It is necessary however that they can be added in each possible order. When I try this, it doesn't work and I get an
IndexOutOfBoundsException
:

list.add(1, object1)
list.add(3, object3)
list.add(2, object2)


What I have tried is filling the
ArrayList
with
null
and then doing the above. It works, but I think it's a horrible solution. Is there another way to do this?

Answer

You can do it like this:

list.add(1, object1)
list.add(2, object3)
list.add(2, object2)

After you add object2 to position 2, it will move object3 to position 3.

If you want object3 to be at position3 all the time I'd suggest you use a HashMap with position as key and object as a value.

Comments