黑马程序员技术交流社区
标题:
List 和 Map 区别?
[打印本页]
作者:
小小6456
时间:
2014-5-19 13:00
标题:
List 和 Map 区别?
,。。。求解!学习
作者:
莫问纷飞
时间:
2014-5-19 13:10
List
1,是有序的,存入的顺序和取出的顺序一致。
2,元素是有索引的。
3,元素可以重复。
Vector:数组结构的,是同步的。被ArrayList替代,因为效率低。
ArrayList:数据结构是数组结构,是不同步的。查询速度很快。
LinkedList:数据结构是链表结构,是不同步的。增删速度很快。
Map集合中存储的是一对儿元素。键和值。之间存在着对应关系。
必须要保证键的唯一性。
如果存储键相同,值会覆盖。
只有list集合才具备增删改查。
最早的单列集合是Vector,双列集合是Hashtable
Hashtable:数据结构是哈希表,是同步的,不允许键和值为null
HashMap:数据结构是哈希表,是不同步的,运行键和值为null
TreeMap:数据结构是二叉树,是不同步的,可以对集合中的键进行排序。
作者:
彭飞
时间:
2014-5-19 14:00
楼主的提问,更准确的说,应该是Collection 和Map 区别吧
因为他们俩才在同一层次
list 和set 是Collection的小弟
Collection是单列集合,Map 是双列集合。
就是说,需要存储的元素对象是一个一个滴,就用Collection,
而对象是成对成对具有映射关系的时候,就用Map。
而collextion 下的list 和set 前者具备有序而可重复且不同步的特性,后者是无序不可重复且同步的
用原题来说,他们很好区分,就是单列集合和双列集合的区分。
作者:
路漫漫_求索
时间:
2014-5-19 17:20
我将它们总结了下,看完下面,它们的区别你就能一目了然了~~~
* List可以存放重复元素,元素是有序的
* |--ArrayList底层数据结构是数组,查询快,增删慢。线程不同步,效率高。
* |--Iterator排序方法
* |--ListIterator特有迭代器。
* 特有方法(指定位置add添加、set修改,还能判断前面是否还有元素hasPrevious)
* 原因:ArrayList是数组结构,具有角标,所以可以索取指定角标进行添加修改
* |--add();
* |--set(int, String);指定位置元素,要修改的元素
* |--remove();
* |--subList(int star,int end); 获取集合中 指定star-end之间的对象
* |--indexOf();要查找的对象
Map集合常用类(存储的是键值对)注意了:当发现有映射关系时,可以选择map集合。
* |--put();存储元素的方法
* 第一种取值方式:
* |--keySet();取出元素的方法(要先转成set集合,通过Iterator方法获取)
* Set<Integer> keySet = map.keySet();
* 第二种取值方式:
* |--entrySet: 返回的是Set<Map.Entry<K,V>>
* 将集合中的映射关系(映射关系相当于丈夫和妻子的结婚证)
* 存入到了Set集合中,而这个关系的数据类型就是Map.Entry
* |--get(02);通过键获取值
* |--remove(02);通过键移除元素
* |--containsValue("zhangsan03");通过键判断是否存在
* |--containsKey();通过值判断是否存在
*
* |--Collection<String> coll = map.values();使用collection接收Map集合中所有的值。
作者:
alax
时间:
2014-5-20 03:36
Map没有继承Collection接口
list继承Collection接口
List特点:元素有放入顺序,元素可重复
Map特点List接口有三个实现类:LinkedList,ArrayList,Vector
LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。链表增删快,查找慢
ArrayList和Vector的区别:ArrayList是非线程安全的,效率高;Vector是基于线程安全的,效率低 :元素按键值对存储,无放入顺序
Map接口有三个实现类:HashMap,HashTable,LinkeHashMap
HashMap非线程安全,高效,支持null;HashTable线程安全,低效,不支持null
SortedMap有一个实现类:TreeMap
其实最主要的是,list是用来处理序列的
map存储的是键值对
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2