集合和数组的区别
JAVA基础 – 面试篇
1.集合和数组的区别
1.数组大小固定,集合大小不固定
2.数组只能存储相同的数据类型,集合可以存储多种数据类型
3.数组可以是基本数据类型,也可以是引用数据类型。集合只能存储引用数据类型。
- 为什么集合只能存储引用数据类型? 【ArrayList底层维护了一个Object[]数组,在添加的时候,接收参数为泛型T。jdk1.5之后有泛型。泛型擦除之后就会转换成Object,而基本数据类型,没有继承Object,不能转换成Object,所以集合不能使用基本数据类型。】
- 泛型擦除【泛型擦除:意思在List限制了list存储类型,编译的时候会去检验存储类型,编译通过之后就会进行泛型擦除,变成List。目的就是为了兼容jdk1.5之前的低版本】
- 集合中还可以使用抽象类,接口作为泛型,List中添加接口或抽象类的实现类。
public class Test2 {
public static void main(String[] args) {
// Demol:抽象类,Demo1Impl,Demo2Impl重写了抽象类方法
List<Demo1> list = new ArrayList<>();
list.add(new Demo1Impl());
list.add(new Demo2Impl());
for (Demo1 demo1 : list) {
demo1.demoMethod();
}
}
}
还没有评论,来说两句吧...