You might want to consider using a LinkedList rather than an ArrayList, if you're removing from both the front & the end of your List Collection LinkedList handles this better & offers a whole load of useful methods to do exactly what it looks like you're trying to achieve. LinkedList is often used to implement Queue functionality.
Check out the Javadoc here
http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html
methods such as addFirst, addLast, removeFirst, removeLast etc look good for you.