黑马程序员技术交流社区
标题:
数组和集合的区别,
[打印本页]
作者:
李大伟
时间:
2013-6-4 11:05
标题:
数组和集合的区别,
本帖最后由 李大伟 于 2013-6-6 14:34 编辑
数组和集合的区别集合变数组的好处
数组变集合的好处
作者:
穆爱明
时间:
2013-6-4 11:56
1.数组的长度定义了就不能改变了,不能很好的适应元素数量动态变化。例如你定义一个长度为50的数组,结果要存储的数据发现增加了,你就要重新定义数组;如果数据变小了,则造成空间的浪费。
2.数组采用在内存中分配连续空间的存储方式,根据下标获取对应的元素信息,但是要根据元素信息查找时,需要多次比较。
3.数组在进行频繁插入,删除操作时同样效率低下。
集合的优点:ArrayList和数组采用相同的存储方式,它的优点在于遍历元素和随机访问元素的效率比较高。LinkedList采用链表存储方式,优点在于插入,删除元素时效率比较高。HashMap则在查询指定元素时效率较高。
总结:数组再处理一些问题时存在缺陷,而集合弥补了数组的缺陷,它比数组更灵活实用,提高开发效率,而且不同的集合可适用于不同的数据存储。
只能说个大概,具体情况具体分析!
作者:
王瀛
时间:
2013-6-4 11:58
数组由于定义的时候需要定义类型,如int[] arr、char[] arr、Person[] arr ... 等,所以数组中的元素类型是固定的,而且数组的长度也是固定不变的(同样在定义时确定了)
集合也是一种容器
集合的长度不是固定的(动态变化,如ArrayList初始10,超出长度后,自动增加原长度50%的"空间");
集合中元素的类型不是固定的,可以是String,可以是Person类,可以是 int 型,可以是boolean型 ...
作者:
杨兴庭
时间:
2013-6-4 12:01
在c语言学习中,当我们遇到大量相同类型数据时,我们会定义该类型数组来存数这些数据,在java中,我们在面向对象编程中常常需要定义很多相同属性和方法的对象,那么这些对象存储在哪里,怎么存储才能使用户访问这些对象更加的快捷方便?对比c语言中数组java中集合具有相同的功能,但是集合具有动态存储的特点,可以更加灵活的存储、访问、调用对象。
在面向对象编程中,当存储的对象个数不确定时,以及存储的对象是复杂对象,具有映射关系时,我们就需要用集合存储。集合可以理解存放一组相同属性和方法的对象的容器。
集合框架满足的条件:
1.对外接口
2.具体实现类
3.算法
简单来说,数组是存储相同类型变量的,集合是存储相同类型对象的
作者:
殇_心。
时间:
2013-6-4 16:14
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2