ArrayDeque
лучше. См. этот тест , полученный из этого блога о результатах сравнительного анализа этого. ArrayDeque
не имеет накладных расходов на распределение узлов, которые есть у LinkedList
, ни накладных расходов на смещение содержимого массива, оставшегося при удалении, которое имеет ArrayList
. В тесте производительности он составляет около 3x , а также LinkedList
для больших очередей и даже немного лучше, чем ArrayList
для пустых очередей. Для лучшей производительности вы, вероятно, захотите придать ему начальную емкость, достаточно большую, чтобы вместить количество элементов, которое он может удерживать за раз, чтобы избежать большого размера.
Между ArrayList
и LinkedList
, кажется, что это зависит от среднего количества общих элементов, которое очередь будет содержать в любой момент времени, и что LinkedList
превосходит ArrayList
, начиная примерно с 10 элементов.