If you look in the Java™ Tutorials you will find details of all the well-known collections. You are describing a List; ArrayList is a good choice for your requirements. Your method will probably fulfil your requirements for iteration.
Look for the get() add() and remove() methods in the List interface and the ArrayList class.
Jesper Young wrote:Given the requirements that you describe, a LinkedList might be more efficient than an ArrayList.
Especially removing elements from the middle of a collection (requirement 3) is expensive on an ArrayList, but cheap on a LinkedList.
But there's a trade-off. With LinkedList you first need to find the position to remove from before you can remove anything. In the end the two can be just as (in)efficient if you need to remove elements from somewhere in the middle, as both require O(n) time - the LinkedList requires O(n) time for finding the element, then O(1) to remove, whereas for ArrayList it's the other way around.
Good to use ArrayList collection object for the requirment.
Because it is easy to use ArrayList and perform the iteration and as well as random access operations .
with LinkedList manipulating is very easy, and as long as its used for iteration purposes only and not for random accessing, it’s the best solution.
ArrayList is slow in manipulating the objects like adding /removing the objects randomly compared to Linked list.
where as Linked list follows the sequential process (no random) it is quite fast in manipulating.
In other words
The difference is in the performance characteristics. Because of the way ArrayList and LinkedList work internally, some operations are more efficient on ArrayList, and some operations are more efficient on LinkedList.
For example, inserting an element in the middle of the list is relatively slow on ArrayList, but fast on LinkedList. And looking up a random element in the list is fast on ArrayList, but slow on LinkedList. Which of the two you should choose depends on what you're going to use the list for...