Search code examples
javaarraysarrayliststack

Java ArrayList how to add elements at the beginning


I need to add elements to an ArrayList queue whatever, but when I call the function to add an element, I want it to add the element at the beginning of the array (so it has the lowest index) and if the array has 10 elements adding a new results in deleting the oldest element (the one with the highest index).

Does anyone have any suggestions?


Solution

  • List has the method add(int, E), so you can use:

    list.add(0, yourObject);
    

    Afterwards you can delete the last element with:

    if(list.size() > 10)
        list.remove(list.size() - 1);
    

    However, you might want to rethink your requirements or use a different data structure, like a Queue

    EDIT

    Maybe have a look at Apache's CircularFifoQueue:

    CircularFifoQueue is a first-in first-out queue with a fixed size that replaces its oldest element if full.

    Just initialize it with you maximum size:

    CircularFifoQueue queue = new CircularFifoQueue(10);