java代码中Collection c = new ArrayList 为什么说比ArrayList c = new ArrayListy用法灵活?

2024-12-13 15:36:12
推荐回答(5个)
回答1:

Collection 是ArrayList的父接口,如果用ArrayList c = new ArrayList();这种形式,那么c对象只能是一个ArrayList;如果用Collection c = new ArrayList();这种形式,那么c对象就还可能是Collection下的其他子类的对象,例如LinkedList等。针对c对象来说,前一种是不是更灵活?

回答2:

因为ArrayList 是Collection 的某个实现,而不代表Collection 的所有实现。也就是说Collection 包含了ArrayList 。而且一般不是用Collection c = new ArrayList 而是用List c = new ArrayList

回答3:

这个就是java里面泛型的概念
Collection 是ArrayList的父类。因此可以通过这种方式来赋值。
将来如果不想用ArrayList了,那么可以用LinkList
Collection c = new LinkList

仅仅需要改这一个地方,别的地方代码都不需要修改

回答4:

这是多态那一块的内容,定义的变量类型越抽象,越灵活。可以更容易的向下转型等等…… 仔细看看多态

回答5:

ArrayList实现了collection接口
如果感觉此容器不太适合操作时,可迅速的切换另外一种容器
ArrayList底层数据结构就是Object[]
如果对这个经常修改,还是更适合用LinkedList
如果你采用ArrayList c = new ArrayList
且下面使用了ArrayList的独有函数
你想改为其它数据结构时,够你改一会儿的