何时使用列表,何时使用LinkedList?(java)
当我们使用何时使用列表,何时使用LinkedList?(java),java,Java,当我们使用 List<String> lst = new LinkedList<>(); LinkedList<String> lklst = new LinkedList<>(); List lst=newlinkedlist(); 当我们使用 List<String> lst = new LinkedList<>(); LinkedList<String> lklst = new
List<String> lst = new LinkedList<>();
LinkedList<String> lklst = new LinkedList<>();
List lst=newlinkedlist();
当我们使用
List<String> lst = new LinkedList<>();
LinkedList<String> lklst = new LinkedList<>();
LinkedList lklst=newlinkedlist();
起初,我以为它们是一样的,但今天,我意识到它们不一样了。例如,如果我调用
lst.getFirst()
,它将告诉我有一个错误。但是,如果我使用lklst.getFirst()
,它就可以正常工作。我的问题是我们什么时候使用lklst?为什么它们不同?另外,它是否对Map应用相同的规则。谢谢 在左侧,您正在声明变量的类型,lst
。由于lst
的类型是List
,因此即使lst
指向的对象实际上是LinkedList
,也只能访问列表的方法。在声明一个具体类型的变量(如LinkedList
(访问更多方法/行为)与一个更抽象的接口(更安全、更好的划分代码)之间,有一个内在的权衡
这是一个很大的话题,对于什么时候做一件事和什么时候做另一件事,没有一个简单的答案(尽管有很多关于它的建议!)-你需要找出哪一件适合你的用例
-第52项:通过对象的接口引用对象是本期的一个非常规范的引用,正如标题所示,建议您更喜欢List
而不是LinkedList@soorapadman完全不是这样,请在此处阅读更多关于该主题的内容:何时使用LinkedList
。