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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2019-4-26 14:25  /  3854 人查看  /  54 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.Map接口的子类有什么特点,谈谈你所了解的Map实现类?
答:
Map接口是双列集合的顶层接口,它是键值对的形式存储数据的,键值是一一对应的,并且键是唯一的而值不是。
Map接口有HashMap和TreeMap两个子类
        HashMap:1.底层数据结构是哈希表;
                         2.元素存取也是无序的
                         3.HashMap还有可以存储Null,但是Null也会遵循唯一的特点
                         4.底下还有LinkedHashMap子类,它是有序的。
        TreeMap:
                        1.使用泛型中类的自然顺序排序
                        2.使用Comparator比较器进行比较的。
                                (Comparable和Comparator两种比较器,后者更有利于后期维护)
               
2.目前为止,我们所学的遍历map集合有几种方式?
答:两种;
1.通过键找值。
        获取所有键的集合。用keySet()方法实现
        遍历键的集合,获取到每一个键。用增强for实现
        根据键去找值。用get(Object key)方法实现
       
2.通过获取键值对对象集合
        获取所有键值对对象的集合
        Set<Map.Entry<K,V>> entrySet():获取所有键值对对象的集合
        遍历键值对对象的集合,得到每一个键值对对象
        用增强for实现,得到每一个Map.Entry
        根据键值对对象获取键和值
        用getKey()得到键
        用getValue()得到值
       
3.请用自己的语言描述你所了解的集合体系
答:集体体系分为单列和双列两种;
单列:
        Collection接口是单列集合的顶层接口,它没有索引值,
        Collection接口底下还有两个子接口List,Set。
                List接口:
                        特点:1.有序;2.元素可以重复;3.有索引值
                        底下有ArrayList和LinkedList两个实现类
                                ArrayList底层数据结构是数组,所以有着查询快(数组有索引值,能够快速定位元素),
                                                                                                         增删慢(数据增删需要创建出新的数组),两个特点。
                                                                                         
                                LinkedList底层数据结构是链表,所以有着查询慢(链表查询每次都是从头开始查起),
                                                                                                增删快的特点(链表在增删数据只需改变下一个元素的地址值),
                                                                                                        两个特点。
                                       
                Set接口:
                        特点:1.无序(底层是哈希表);
                                  2.元素不可重复(底层是哈希表);
                                  3.没有索引值(只能使用迭代器和增强for循环遍历)
                        底下有HashSet和TreeSet两个实现类
                                HashSet底层是由哈希表组成(数组+链表/红黑树),所以HashSet集合是无序、不重复的
                                        HashSet集合保证元素不重复的,是需要重写hashCode()、equals()两个方法。
                                                HashSet底下还有一个LinkedHashSet类,它是有序的
                                TreeSet集合它可以根据元素的进行自然顺序排序,也可以通过Comparable或者Comparator进行自定义排序。
双列:
        Map接口是双列集合的顶层接口,它是键值对的形式存储数据的,键值是一一对应的,并且键是唯一的而值不是。
        Map接口底下有HashMap和TreeMap两个实现类
                HashMap:
                                1.底层也是哈希表;2.元素存取也是无序的
                                HashMap还有可以存储Null,但是Null也会遵循唯一的特点
                                底下还有LinkedHashMap实现类,它是有序的。
                               
                TreeMap:
                                1.使用泛型中类的自然顺序排序
                                2.使用Comparator比较器进行比较的。(Comparable和Comparator两种比较器,后者更有利于后期维护)

点评

总结得不错,注意调整下格式  发表于 2019-4-27 17:25
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马