Почему в очереди используется конструктор LinkedList в Java - PullRequest
0 голосов
/ 19 марта 2019

Я пытался понять встроенный интерфейс очереди в Java.Я понял, как правильно использовать класс.

Но я не могу понять, почему он использует конструктор LinkedList для инициации самого себя?

зачем это нужно?Разве мы не можем реализовать очередь, используя ArrayList?

Заранее спасибо

1 Ответ

1 голос
/ 19 марта 2019

Поскольку LinkedList реализует Queue, тогда как ArrayList - нет.

Queue<Object> myQueue = new LinkedList<>(); // Works, LinkedList implements Queue
Queue<Object> myQueue = new ArrayList<>(); // Doesn't compile, ArrayList doesn't implement queue

Теперь, если вы захотите, вы можете написать новый класс, реализующий Queue и использующий ArrayList в качестве резервного контейнера, но я не вижу привлекательности, поскольку вы уже можете инициализировать LinkedList изArrayList.Возможно, производительность методов List может быть некоторой (если вы ее тоже реализовали), но методы Queue почти не будут работать.

Источники: Javadoc для Очередь , LinkedList и ArrayList

...