A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 小小6456 初级黑马   /  2014-5-19 13:00  /  1358 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

,。。。求解!学习

评分

参与人数 1黑马币 +5 收起 理由
鸭梨的生活 + 5 很给力!

查看全部评分

4 个回复

倒序浏览
List
1,是有序的,存入的顺序和取出的顺序一致。
2,元素是有索引的。
3,元素可以重复。
Vector:数组结构的,是同步的。被ArrayList替代,因为效率低。
ArrayList:数据结构是数组结构,是不同步的。查询速度很快。
LinkedList:数据结构是链表结构,是不同步的。增删速度很快。

Map集合中存储的是一对儿元素。键和值。之间存在着对应关系。
必须要保证键的唯一性。
如果存储键相同,值会覆盖。
只有list集合才具备增删改查。
最早的单列集合是Vector,双列集合是Hashtable
Hashtable:数据结构是哈希表,是同步的,不允许键和值为null
HashMap:数据结构是哈希表,是不同步的,运行键和值为null
TreeMap:数据结构是二叉树,是不同步的,可以对集合中的键进行排序。
回复 使用道具 举报

楼主的提问,更准确的说,应该是Collection 和Map  区别吧
因为他们俩才在同一层次
list 和set 是Collection的小弟


Collection是单列集合,Map 是双列集合。

就是说,需要存储的元素对象是一个一个滴,就用Collection,
            而对象是成对成对具有映射关系的时候,就用Map。

而collextion 下的list 和set    前者具备有序而可重复且不同步的特性,后者是无序不可重复且同步的

用原题来说,他们很好区分,就是单列集合和双列集合的区分。
回复 使用道具 举报
我将它们总结了下,看完下面,它们的区别你就能一目了然了~~~

* 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集合中所有的值。
回复 使用道具 举报
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存储的是键值对
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马