Kai*_*Bum 26 java queue linked-list list data-structures
创建这两个对象有什么区别
Queue<String> test = new LinkedList<String>();
Run Code Online (Sandbox Code Playgroud)
和
List<String> test2 = new LinkedList<String>();
Run Code Online (Sandbox Code Playgroud)
test
和之间的实际差异是test2
什么?他们俩都是LinkedList
?是否存在使用其中一个的性能差异或原因?
tem*_*def 42
您编写的两个语句构造一个LinkedList<String>
对象来保存字符串列表,然后将其分配给变量.不同之处在于变量的类型.
通过将LinkedList<String>
变量分配给类型变量Queue<String>
,您只能访问界面LinkedList
中可用的方法Queue<String>
,其中包括对排队和出列元素的支持.如果您需要编写一个使用队列进行各种操作并希望使用链表实现该队列的程序,这将非常有用.
通过将LinkedList<String>
变量分配给类型变量List<String>
,您只能访问界面LinkedList
中可用的方法List<String>
,这些方法是维护元素序列的常规操作.例如,如果您需要处理可在任何地方增长和缩小的元素列表,这将非常有用.
简而言之,这两行创建了相同的对象,但打算以不同的方式使用它们.一个说它需要一个由链表支持的队列,而另一个说它需要一个由链表支持的一般元素序列.
希望这可以帮助!
在这两种情况下,您都在实例化LinkedList
.
区别在于您用来引用这些实例的变量的类型。
test
是 类型Queue
并且test2
是 类型List
。根据变量的类型,您只能调用在该特定类型上指定的方法。我认为这对您的情况很重要。
在性能方面,它将是相同的,因为您在这两种情况下使用的实际实现是相同的 ( LinkedList
)。