LinkedList,队列与列表的区别

创建这两个对象有什么区别

Queue test = new LinkedList(); 

 List test2 = new LinkedList(); 

testtest2之间的实际差异是什么? 他们俩都是LinkedList吗? 是否存在使用其中一个的性能差异或原因?

您编写的两个语句构造一个LinkedList对象来保存字符串列表,然后将其分配给变量。 不同之处在于变量的类型。

通过将LinkedList分配给Queue类型的变量,您只能访问Queue接口中可用的LinkedList中的方法,其中包括对入列和出列元素的支持。 如果您需要编写一个使用队列进行各种操作并希望使用链表实现该队列的程序,这将非常有用。

通过将LinkedList分配给List类型的变量,您只能访问LinkedList List接口中可用的LinkedList中的方法,这些方法是维护元素序列的常规操作。 例如,如果您需要处理可在任何地方增长和缩小的元素列表,这将非常有用。

简而言之,这两行创建了相同的对象,但打算以不同的方式使用它们。 一个说它需要一个由链表支持的队列,而另一个说它需要一个由链表支持的一般元素序列。

希望这可以帮助!

除了你要公开的方法类型之外,我觉得它们都非常相似。 由于LinkedList实现了两个接口,因此选择其中一个接口可以访问该接口类型的方法。

请查看这些链接以获取接口方法声明

http://docs.oracle.com/javase/6/docs/api/java/util/Queue.html http://docs.oracle.com/javase/6/docs/api/java/util/List.html

我不确定性能,但我认为它不应该是不同的,因为对象实现是常见的。

在这两种情况下,您都要实例化LinkedList

区别在于您用于引用这些实例的变量类型。

test的类型为Queuetest2的类型为List 。 根据变量的类型,您只能调用在该特定类型上指定的方法。 我认为这对你的情况很重要。

性能方面,它将是相同的,因为您在两种情况下使用的实际实现是相同的( LinkedList )。