LinkedList<Integer> q = new LinkedList<>();和Queue<Integer> q = new LinkedList<>();一样吗?
我现在想创建一个队列对象,正常情况下我会这样写:Queue<Integer> q = new Queue<>();
但是你仔细想想,这样写真的对吗?
Queue是接口,但是接口是不能实例化一个对象的
那怎么办?
先看看LinkedList部分源代码
public class LinkedList<E>
extends AbstractSequentialList<E>
implements List<E>, Deque<E>, Cloneable, java.io.Serializable
可以看到 LinkedList实现了Deque(Deque继承了Queue),所以可以用LinkedList类实例化一个对象,而返回类型仍然是Queue接口,这样就创建好了一个队列(java创建一个队列理解起来真tm麻烦,还不如用c++呢)