gpt4 book ai didi

java - 什么时候使用List,什么时候使用LinkedList?(java)

转载 作者:行者123 更新时间:2023-12-02 12:05:14 29 4
gpt4 key购买 nike

当我们使用时我有点困惑

List<String> lst = new LinkedList<>();     

当我们使用时

LinkedList<String> lklst = new LinkedList<>();

一开始我以为它们是一样的,但今天我发现它们不一样。例如,如果我调用 lst.getFirst()它会告诉我有一个错误。但是,如果我这样做lklst.getFirst() ,效果很好。我的问题是我们什么时候使用 lklst?为什么它们不同?另外,它是否对 Map 应用相同的规则。谢谢!

最佳答案

在左侧声明变量的类型,lst。由于 lst 的类型是 List,因此您只能访问 List 的方法,即使对象 lst < em>指向实际上是一个LinkedList。在声明像 LinkedList 这样的具体类型的变量(访问更多方法/行为)与更抽象的接口(interface)(更安全、更好的划分代码)之间存在固有的权衡。

这是一个很大的话题,对于何时执行其中一项与另一项没有一个简单的答案(尽管有很多关于它的建议!) - 您需要找出适合您的用例的方法。

Effective Java - 第 52 条:通过接口(interface)引用对象 是对此问题的一个非常规范的引用,正如标题所暗示的那样,建议优先使用 List 而不是 LinkedList

关于java - 什么时候使用List,什么时候使用LinkedList?(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46945598/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com