【发布时间】:2019-03-15 10:50:32
【问题描述】:
我想到了一个问题:
有什么区别
1) 列表列表 = 新的 ArrayList()
2) 列表列表 = 新的 LinkedList() ?
不管我用上面两种方式初始化list,还是只能用List中的方法,不能用ArrayList或LinkedList,不是吗?
我从一个网站 (http://www.corejavaguru.com/blog/java/new-arraylist) 上读到,它说它被称为“编程到接口”,开发人员可以很容易地从 ArrayList 更改为 LinkedList,反之亦然。但是如果我按照上面所示的方式初始化,我就无法使用ArrayList/LinkedList的方法,即使改变初始化方式也很灵活。我相信是有原因的。希望能找到答案。
【问题讨论】:
-
粗略的区别是你应该使用
ArrayList,你不应该使用LinkedList。在我作为 Java 程序员的 20 年中,我做过一次后者,回想起来我很后悔。 -
@OleV.V.为什么不应该使用 LinkedList?
-
我认为这个问题的措辞令人困惑,但我相信 OP 是在询问将变量类型声明为
List而不是将变量类型声明为实际的具体实现类的原因,要么ArrayList或LinkedList。所以我觉得这不会重复链接的问题。 -
同意@Bobulous。标题具有误导性。
-
@IvanKaloyanov 如果您愿意,您可以,但您为什么要这样做?在性能无关紧要的 10 个案例中,有 9 个可以抛硬币。当它确实重要时,更喜欢
ArrayList。我从未见过LinkedList表现更好的案例,无论是时间还是空间。即使有时在中间进行插入和删除也不行。
标签: java list arraylist linked-list