我试图了解Java中的内置队列接口。我了解如何很好地使用课堂。
但是我不明白为什么它使用LinkedList构造函数来初始化自身?
为什么需要它? 我们不能使用ArrayList实现队列吗?
预先感谢
答案 0 :(得分:1)
因为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作为其后备容器,但是我没有看到这种吸引力,因为您已经可以从ArrayList初始化LinkedList。可以说,List
方法上可能会有一些性能(如果您也实现了),而Queue
方法上几乎没有。
来源: 适用于Queue,LinkedList和ArrayList的Javadoc