Queue
использует двусвязный список в качестве структуры данных. Фактически очередь в Java объявлена так:
Queue<SomeClass> q = new LinkedList<>();
LinkedList
в Java - это двусвязный список по умолчанию.
Сейчас offer()
или вставка в начале всегда O(1)
, поскольку вам не нужно обходить весь список и то же самое с poll()
, где вы удаляете хвост и возвращаете его.
Теперь как Что касается одновременного доступа, он не должен влиять на временную сложность кода.