本帖最后由 郑海波 于 2019-3-25 21:32 编辑
1.Map接口下有几个子类,各自有什么特点?
Map接口下的子类有3个:
HashMap:1.查询速度快,因为底层结构是哈希表;2.无序集合;
LinkedHashMap:1.底层结构是哈希表加链表,是一个有序集合;2.继承自HashMap,查询速度快;
Hashtable:1.底层结构是哈希表;2.线程比较安全;3.单线程集合,速度慢,在JAVA1.2后被其他集合取代
2.目前为止,我们所学的遍历map集合有几种方式?
方式一:通过key键来查找value值
步骤:1.使用MAP集合中的keySet()方法把所有key存储到一个集合中
2.遍历这个集合,获取每一个key(增强for或者迭代器)
3.通过get(key)方法获取value
4.打印
方式二:使用entry对象来遍历方法
步骤:1.使用entrySet()新建一个Set集合,存储entry对象
2.遍历这个集合,获取每个ntry对象(增强for或者迭代器)
3.使用 对象.getKey()和对象.getValue() 方法获取key键和value值
4.打印
3.请用自己的语言描述你所了解的集合体系
集合体系氛围单列集合和双列集合
单列集合里最大的是Collection
Collection有两个实现类:
1.List集合:有序,有索引值,允许重复元素存储
List集合有三个子类:
1.ArrayList集合:查询快,增删慢,数据结构为数组
2.LinkedList集合:增删快,查询慢,数据结构为链表
3.Vector集合:安全性高,效率低,JAVA1.2后被ArrayList取代
2.Set集合:没有索引,不允许重复元素存储
Set集合下有个子类——HashSet集合:不允许存储重复元素,没有索引,无序集合,数据结构为哈希表(数组+链表/红黑树)
HashSet集合下有个子类——LinkedHashSet集合:在哈希表的基础上多了一条链表来记录元素顺序,因此LinkedHashSet集合是有序的,但是也不允许存储重复元素,没有索引
双列集合里最大为Map:一个元素有两个值key和value;key和value的数据类型可以相同,也可以不同;key是不允许重复的,value是可以重复的;key和value是一一对应
Map有两个实现类:
1.HashMap集合:数据结构为哈希表,也是一个无序集合,多线程,速度快
HashMap集合有个子类——LinkedHashMap:数据结构:哈希表上多了条链表,因此有序
2.Hashtable集合:底层也是一个哈希表,安全性高,但是是单线程,速度慢,JAVA1.2后被其他集合取代
|