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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 厦门校区   /  2018-6-24 21:03  /  2991 人查看  /  26 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

谢精良

1 常用的有:HashMap  存取顺序不一致  数据结构为哈希表
LInkedHashMap 存取顺序  为hashmapde子类

2  entrySet和 keySet
3 单列结合顶层接口Collection  子接口为List和Set  List的子实现类有ArrayList LinkedList Vector  Set的子实现类有HashSet(子类Linkedhashset) TreeSet
双列集合接口Map 常用实现类有HashMap(子类linkedhashmap)
回复 使用道具 举报
林焕
1.Map接口下常用的子类有HashMap和LinkedHashMap;

HashMap特点:存储数据采用的哈希表结构,由于要保证键的唯一、不重复,需要重写键hashCode()方法、equals()方法;

LinkedHashMap特点:存储数据采用的哈希表结构+链表结构,通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法;

2.有2种遍历map集合方式;
一:keySet方式:通过获取map集合中键的集合,然后遍历键的集合,再遍历键和键映射的值;

二:entrySet方式:获取map集合中所有键值对对象的set集合,然后遍历set集合中getKey()和getValue();

3.目前所学的集合体系为两个大类,一是Collection为基类的单列集合,二是Map为基类的双列集合;

Collection子类有List(特点:有序有索引允许重复)和Set(特点:无序无索引不允许重复);
List子类有ArrayList(特点:查询快,增删慢)、LinkedList(特点:查询慢,增删快)和Vector(特点:线程安全,效率不高);
Set子类有HashSet(子类有LinkedHashSet)和TreeSet;

Map子类有HashMap和LinkedHashMap;Map集合主要的特点是元素由键和值组成,键是唯一的不重复,每个键都映射着与之对应的值且每个键只能有一个值;
回复 使用道具 举报
吴香斌

1.Map接口下有几个子类,各自有什么特点?
1)HashMap,是一个采用哈希表实现的键值对集合,是Map接口的主要实现类,特点如下:
   a.由于底层为哈希表数据结构同时兼具查询和增删优势,所以HashMap的查询和增删都比较快.
   b.元素是无序的(所谓的无序指的是存储与获取顺序不一致)
   c.由于Map接口没有继承iterable接口,所以Iterable接口特有的迭代器无法使用,所以Map集合的迭代需要先转化为Set集合.
2)LinkedHashMap,是HashMap的子类,是有HashMap和双向链表组成的,是有序的HashMap.
   
2.目前为止,我们所学的遍历map集合有几种方式?

1) 通过Map.keySet, 返回的是key值的Set集合,然后通过调用get(key)方法,得到对应value值,再遍历Set集合,就实现了遍历Map集合.
2) 通过Map.entrySet,返回的是Entry键值对Set集合,然后通过Entry对象调用getKey和getValue方法,获取对应键和值,再遍历Set集合,就实现了遍历Map集合.
3) 通过Map.values,返回的是values值的Collection集合,只能遍历value值

3.请用自己的语言描述你所了解的集合体系

目前已经学习的集合体系有Collection和Map两种体系.
Collection集合是单列集合,只能同时存储一种类型的数据.
Map集合是key-value映射关系的双列集合,可以同时存储两种类型的数据.
在选择集合的时候,可以参考下面的选择方式:
1)List集合类:当需要查询和有序的遍历的时候,使用ArrayList. 当还需要大量增删工作的,使用LinkedList集合.
2)Set集合类:当需要保证元素唯一性时,或者需要对一些元素进行相同元素过滤时,可以使用HashSet集合.如果还要求有排序功能,使用LinkedHashSet
3)HashMap集合类:当需要两种元素进行一一对应时,可以使用HashMap,存取是无序的. 需要存取有序的,使用LinkedHashMap.


回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
(1)HashMap类:储存数据是通过哈希表结构,所以元素的存取顺序不能保证一致,为保证键的唯一性、不重复需要重写键的hashCode()方法、equals()方法。
(2)LinkedHashMap类;他为HashMap类下的一个子类,通过储存数据是通过哈希表和链表结构,保证了元素的存取顺序,为保证键的唯一性、不重复也需要重写键的hashCode()方法、equals()方法。
2.目前为止,我们所学的遍历map集合有几种方式?
(1)Map集合中因为元素的键具有唯一性,所以获取集合中元素的键建立Set集合,遍历Set集合中的键,通过键来获取值;
(2)通过entrySet()获取Map集合中所有的键值对(Entry)对象,以Set集合形式返回,遍历包含键值对(Entry)对象的Set集合,得到每一个键值对(Entry)对象,通过键值对(Entry)对象,获取Entry对象中的键与值。
3.请用自己的语言描述你所了解的集合体系
集合中主要为两个大类,一个为单列集合:Collection,和双列集合:Map。其中单列集合中又分为两类,一个为List接口,其子类元素可重复,存取有序且可进行索引查询;另外一个为set接口,其子类元素具有唯一性,且存取无序无索引,为保证元素的唯一性需重写hashCode和equals方法。为保证元素的存取顺序可以通过LinkedHashSet类,其存储数据是通过哈希表和链表结构。双列集合为Map接口,其子类HashMap类不能保证元素的存储顺序,但是可以通过LinkedHashMap类来保证元素的存储顺序,它的子类集合元素具有键和值,由于键具有唯一、不重复性,所以可通过键来得到值。
回复 使用道具 举报
官启文
1.Map接口下有几个子类,各自有什么特点?
HashMap   双列集合 存储键值对的 无序的
LinkedHashMap   HashMap子类  哈希表结构+链表 可以保证顺序

2.目前为止,我们所学的遍历map集合有几种方式?
1,获取键值,储存到Set集合,通过键值找值值
2,键值对, 获取键值对对象entry,通过对象找到对应的键值和值值。

3.请用自己的语言描述你所了解的集合体系

                                                 Collection
         接口       List    有序    有索引可重复                       Set   无序 无索引 不可重复
ArrayList  LinkedList 和vector                            HashSet  LinkedHashSet TreeSet

       接口  Map   键值对 键可以重复 值会被替代
回复 使用道具 举报
1.HashMap和LinkedHashMap,都是双列集合有键和值一对组成,键是一个集合唯一的值可以不唯一。主要的区别是HashMap存储的顺序是不确定的,而LinkedHashMap的存储可以做到顺序是一样的。

2.2种,一个是通过调用ketSet方法类创建一个Set集合后通过Set集合用迭代器或增强for来遍历,一个是通过调用entrySet方法通过Set集合匿名类别类对象通过Set集合用迭代器或增强for来遍历。


3.集合体系分为单列集合List,Set和双列集合Map。而Liist是有序的,有索引,允许元素重复,Set是无序,无索引的,不允许元素重复。Map有键和值一对组成,键是一个集合唯一的值可以不唯一。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马