gpt4 book ai didi

Java 多态性(ArrayList 和 List)

转载 作者:行者123 更新时间:2023-12-02 03:50:33 28 4
gpt4 key购买 nike

I was looking at this old question and its chosen answer.

最初选择的答案是,

ArrayList<ArrayList<Individual>> group = new ArrayList<ArrayList<Individual>>(4);

但后来修改为推荐这个

List<List<Individual>> group = new ArrayList<List<Individual>>(4);

我在页面上没有看到对此的解释,有人可以解释为什么推荐第二个而不是第一个吗? (我假设它与多态性有关)

最佳答案

这是接口(interface)代码。在这里您可以看到分配是对 List 接口(interface)完成的,而不是对实现 List 的 ArrayList 类完成的。 ArrayList、LinkedList 都实现了 List 接口(interface),同样的,你也可以拥有自己的 List 实现类。因此,将来如果您想以这样的方式更改实现,而不是 ArrayList 对象,而是需要其他 List 实现(例如 LinkedList),那么您可以轻松地修改这样的代码 -

 List<List<Individual>> group = new ArrayList<List<Individual>>(4); 
to
List<List<Individual>> group = new LinkedList<List<Individual>>(4)

此更改不会对使用组变量的代码的其他部分产生影响,因为这是一个 List 对象,而不是 Arraylist 或 LinkedList 对象。它不会破坏您的代码,您也不必浪费时间修改代码来适应此更改。

关于Java 多态性(ArrayList 和 List),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35922969/

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