Java集合:将队列实现为linkedList?

时间:2014-04-12 16:24:33

标签: java collections linked-list queue

在以下声明中:

Queue<Integer> queue1= new LinkedList<Integer>();

这是否意味着queue1将是一个作为一个LinkedList的队列或一个充当队列的linkedList?

我不确定收藏品,特别是当它们被宣布为收藏品时。

3 个答案:

答案 0 :(得分:0)

Queue是一个不是类的接口。 LinkedListQueue接口的实现。

你可以这样认为。

Animal a = new Cat()
Animal b = new Dog()
Animal c = new Cow()

a,b和c都是动物。但它们都是不同类型的动物。

还有其他一些Queue接口的实现,如ArrayBlockingQueue和PriorityQueue。它们都实现了Queue接口,但在内部做了不同的事情。 http://docs.oracle.com/javase/7/docs/api/java/util/Queue.html http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html

你可以这样想。 动物a =新猫() 动物b =新狗() 动物c =新牛()

答案 1 :(得分:0)

Parent name = new Child();

这指的是

  

name是一个Child,但我们可以多态地使用Parent引用。

在您的示例中,Queue是一个接口,LinkedList是Queue的子类。这是一个很好的编程习惯。 (Program to an interface, not an implementation

答案 2 :(得分:0)

queue1 LinkedList充当Queue

queue1LinkedList。毕竟,那是被调用的构造函数。 LinkedList类还实现了ListDeque,但由于您已将其声明为Queue,因此该接口提供的方法将是唯一可用的方法。你没有演员,所以它通常会充当Queue