One of the common questions I hear from Java newcomers is - where is a FIFO list in Java? Одним из распространенных вопросов, я слышу от новичков является Java - где FIFO список в Java?

Java does have a FIFO list capability built-in with LinkedList and ArrayList, but they are not well advertized. Java не имеет FIFO перечень возможностей встроенных в систему, LinkedList и ArrayList, но они не так advertized.

A FIFO interface should at least have: FIFO интерфейс должен по крайней мере, иметь:

 public interface FIFO {     /** Add an object to the end of the FIFO queue */     boolean add(Object o);      /** Remove an object from the front of the FIFO queue */     Object remove();      /** Return the number of elements in the FIFO queue */     int size(); } общественности интерфейс FIFO (/ ** Добавить объект к концу FIFO очереди * / булево добавить (или Объект); / ** удаление объекта из передней части FIFO очереди * / удаления объекта (); / ** Возврат количество элементов в FIFO очереди * / int размера ();) 

A FIFOList class implementing the above would simply be: FIFOList класс реализации выше бы просто:

 public class FIFOList extends LinkedList implements FIFO {     public Object remove() {         return remove(0);     } } общественного класса FIFOList распространяется LinkedList реализует FIFO (Объект общественного удалить () (вернуться убрать (0);)) 

I prefer this setup instead of using a LinkedList.remove(0) directly. Я предпочитаю данной установки вместо использования LinkedList.remove (0) напрямую. It looks cleaner. Она выглядит более чистой.

BTW: You can also extend an ArrayList instead of LinkedList to achieve the same functionality. BTW: Вы также можете продлить ArrayList вместо LinkedList для достижения той же функциональности. LinkedList should in theory provide better performance. LinkedList в теории должно обеспечить лучшую производительность.