黑马程序员技术交流社区
标题:
数组和LIST,MAP的区别!
[打印本页]
作者:
魏志雷
时间:
2012-1-3 14:09
标题:
数组和LIST,MAP的区别!
本帖最后由 魏志雷 于 2012-1-3 16:07 编辑
这两天看数组,学过list和map,都可以存储元素,都可通过遍历读取,但是他们有什么本质区别么?
该贴已经同步到 魏志雷的微博
作者:
林晓波
时间:
2012-1-3 14:16
list容器是表示不连续的内存区域,不支持随即访问,可以高效的添加和删除元素
map是关联容器,是键-值对的集合,可以用键作为下标获取值,在查找方面有很高的效率
作者:
李盈科
时间:
2012-1-3 14:18
数组一旦创建就不能改变长度了 这就在操作的时候造成了麻烦。而List 和set的长度不是固定的,这就给造作带来了方便,ArrayList底层不就是数组么。
作者:
为梦而战
时间:
2012-1-3 14:35
本帖最后由 为梦而战 于 2012-1-3 14:39 编辑
数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型)
List和Map集合可以存储和操作数目不固定的一组数据。且只能存放引用类型的的数据,不能存放基本数据类型.
List按对象进入的顺序保存对象,不做排序或编辑操作。Map同样对每个元素保存一份,但这是基于"键"的,Map也有内置的排序,因而不关心元素添加的顺序。
一般情况对数组的操作是按过程化思想操作,而对这些集合就按面向对象方法操作了,这些集合中都封装了很多用于操作它们的方法,根据List和Map各自的特点去操作其中的对象。
作者:
杨丹丹
时间:
2012-1-3 14:47
Java所有“存储及随机访问一连串对象”的做法,array是最有效率的一种。效率高,但容量固定且无法动态改变。
array还有一个缺点是,无法判断其中实际存有多少元素,length只是告诉我们array的容量。
List:将以特定次序存储元素。所以取出来的顺序可能和放入顺序不同。
Map,持有 key-value pair,像个小型数据库。
作者:
沈样
时间:
2012-1-3 14:52
本帖最后由 沈样 于 2012-1-3 14:53 编辑
我觉得两个就是数组集合,都是存储对象的,不过要看用到什么场合了,list是顺序保存对象,map是键值对应保存对象的。list就是放东西的一个萝框,放进去拿出来,map则更像商店,你用相应的钱去买相应的东西,不能随便拿,要用相应的钱去买相应的东西。理论学得不好,不对请多指教
作者:
王冀0127
时间:
2012-1-3 15:37
首先,list是继承collection的 map而是直接继承object的collection是继承object的 ,collection中有list和set ,list为有序储存,可以重复 有角标 还有一些自己的方法 set为无序的 不可重复 而且方法是继承collection map是一次存入一个元素。以键值对的形式存在, 其中必须要保持键(key)的唯一性,而且map里的方法何collection中的方法也有区别。
作者:
魏志雷
时间:
2012-1-3 16:07
为梦而战 发表于 2012-1-3 14:35
数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型)
List和Map集合可以 ...
加上上面的解释,大概懂了,随着深入学习可能会理解的更透彻
作者:
374122761
时间:
2012-1-3 16:13
List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组
Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个 value。Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key-value映射。
作者:
为梦而战
时间:
2012-1-3 16:13
是啊,互相学习和交流可以少走弯路。也只有再进行不断的学习和应用的过程中才能理解的更透彻,体会的更深刻!
一起努力!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2