什么是创建时的区别这两个对象差异的LinkedList,排队VS列表
Queue<String> test = new LinkedList<String>();
和
List<String> test2 = new LinkedList<String>();
什么是test
和test2
之间的实际差异?他们都是LinkedList
?是否存在性能差异或使用某一方的原因?
什么是创建时的区别这两个对象差异的LinkedList,排队VS列表
Queue<String> test = new LinkedList<String>();
和
List<String> test2 = new LinkedList<String>();
什么是test
和test2
之间的实际差异?他们都是LinkedList
?是否存在性能差异或使用某一方的原因?
您编写的两个语句构造一个LinkedList<String>
对象来存放一个字符串列表,然后将其分配给一个变量。区别在于变量的类型。
通过分配LinkedList<String>
Queue<String>
到类型的变量,则只能访问在LinkedList
是在Queue<String>
接口,其包括用于排队和出队的元件支持可用的方法。如果您需要编写一个使用队列进行各种操作的程序,并希望通过使用链接列表来实现该队列,这将非常有用。
通过分配LinkedList<String>
到List<String>
类型的变量,则只能访问在LinkedList
是在List<String>
界面中可用的方法,这是用于保持元素的序列的正常操作。例如,如果您需要处理可随时随地增长和缩小的元素列表,这将非常有用。
总之,两条线创建相同的对象,但打算以不同的方式使用它们。一个人说,它需要一个由链表支持的队列,而另一个则表示它需要链接列表支持的一般元素序列。
希望这会有所帮助!
我觉得他们都是几乎相同,只是你要公开的方法的类型。由于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
类型Queue
和test2
是List
类型。根据变量的类型,您只能调用在该特定类型上指定的方法。我认为这对你的情况至关重要。
在性能方面,它将会是相同的,因为您在两种情况下使用的实际实现是相同的(LinkedList
)。
@ BheshGurung-你确定吗?我很确定这两个都是合法的Java代码。 – templatetypedef 2013-03-25 05:10:33
他们不编译,因为他们缺少一个(),不是因为分配将是非法的:) – Affe 2013-03-25 05:11:24
ok()已更正 – 2013-03-25 05:12:34