集合和数组的区别

分手后的思念是犯贱 2024-03-31 14:39 230阅读 0赞

JAVA基础 – 面试篇

1.集合和数组的区别

1.数组大小固定,集合大小不固定
2.数组只能存储相同的数据类型,集合可以存储多种数据类型
3.数组可以是基本数据类型,也可以是引用数据类型。集合只能存储引用数据类型。

  • 为什么集合只能存储引用数据类型? 【ArrayList底层维护了一个Object[]数组,在添加的时候,接收参数为泛型T。jdk1.5之后有泛型。泛型擦除之后就会转换成Object,而基本数据类型,没有继承Object,不能转换成Object,所以集合不能使用基本数据类型。】
  • 泛型擦除【泛型擦除:意思在List限制了list存储类型,编译的时候会去检验存储类型,编译通过之后就会进行泛型擦除,变成List。目的就是为了兼容jdk1.5之前的低版本】
  • 集合中还可以使用抽象类,接口作为泛型,List中添加接口或抽象类的实现类。
  1. public class Test2 {
  2. public static void main(String[] args) {
  3. // Demol:抽象类,Demo1Impl,Demo2Impl重写了抽象类方法
  4. List<Demo1> list = new ArrayList<>();
  5. list.add(new Demo1Impl());
  6. list.add(new Demo2Impl());
  7. for (Demo1 demo1 : list) {
  8. demo1.demoMethod();
  9. }
  10. }
  11. }

发表评论

表情:
评论列表 (有 0 条评论,230人围观)

还没有评论,来说两句吧...

相关阅读

    相关 指针和数区别

    指针和数组的区别: 1.空间分配:数组是静态分配,且分配的空间是连续的;指针是动态分配,分配的空间不一定是连续的。 2.安全性:使用数组可能会造成数组越界;指针使用时可能会

    相关 集合和数相互转换

    集合和数组相互转换 很多时候API的方法只支持集合或数组,比如适配器类中的数据只支持集合,这时候我们就要把数组转换集合。 集合转换成数组 可以把String换成其

    相关 链表和数区别

    链表和数组一样是一种数据结构。 数组是将元素在内存中连续存放,由于每个元素占用内存相同,所以可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要