数组与集合的区别(概况)

数组与集合的区别(概况),第1张

数组与集合的区别
1、 数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了。而集合是可以动态的,可以根据需求扩容
2、 数组既可以存储基本数据类型,也可以存储引用类型。集合只能存储引用类型,数组存储应用类型感觉很少用;集合只能存储引用类型,所以想要存储基本类型时,要将基本类型转换为对应的包装类
3、 数组只能存储同一类型、集合可以存储不同的引用类型(通常情况下也是存储的同一类型),集合可以存储不同类型的原因是,通过源码,我们可以得知,其方法的返回类型定义的都是Object超类,也就是说在使用引用的时候还会存在向上、向下转型的问题;当然,我们也可以通过在创建集合时,指定对应的类(范型知识)

4、 数组的length属性返回的是数组初始化时的容量,也就是说我们没有比较好的方法来获取数组中到底存储了多少元素,但是集合提供了获取集合中存储元素的方法,如ArrayList中的size()方法
5、 数组的查找速度是优于集合的,数组是怎么查找元素的呢?(还记得自己大二去面视一个学生组织时,学长还问过这个问题,当时还答的支支吾吾), 我们 int a []; 通过输出a这个变量,就可以看到,其时a中存储的就是首地址,那么通过数组下标,array+类型所占字节树=要查找数组元素的位置了,非常快的
而集合的元素查找方法就多种多样了,比较复杂了,有链表形式(LinkedList)、也有数组结构(ArrayList)、还有而二叉树结构(TreeSet)等等,所以其查找速度自然是比不了数组了
6、 集合是以面向对象开发的思想,通过接口设计,很好的体现了java中的封装、继承、多态,和各种优化过的数据结构以及扩容算法等(实在太多了,自己暂时也没有很好的掌握,太无知了),为开发者提供了各种属性以及方法,简化了开发,大大提高了软件开发的效率,因此除非是特殊情况下,如固定大小且在程序运行过程中不会发生大小改变和数组元素的修改,我们选择使用数组外,其他的情况下,我们都是优先选择集合来进行开发的,选择什么样的集合,就要依据java提供的各种集合类自己的特性来决定的
而数组更像是一种面向过程的开发思想而设计的

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/919803.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存