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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蔡锐 中级黑马   /  2015-7-15 09:07  /  486 人查看  /  10 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 蔡锐 于 2015-7-15 13:43 编辑

刘意老师总结的知识点 拿来和大家分享下
集合
        Collection(单列集合)
                List(有序,可重复)
                        ArrayList
                                底层数据结构是数组,查询快,增删慢
                                线程不安全,效率高
                        Vector
                                底层数据结构是数组,查询快,增删慢
                                线程安全,效率低
                        LinkedList
                                底层数据结构是链表,查询慢,增删快
                                线程不安全,效率高
                Set(无序,唯一)
                        HashSet
                                底层数据结构是哈希表。
                                哈希表依赖两个方法:hashCode()和equals()
                                执行顺序:
                                        首先判断hashCode()值是否相同
                                                是:继续执行equals(),看其返回值
                                                        是true:说明元素重复,不添加
                                                        是false:就直接添加到集合
                                                否:就直接添加到集合
                                最终:
                                        自动生成hashCode()和equals()即可
                                       
                                LinkedHashSet
                                        底层数据结构由链表和哈希表组成。
                                        由链表保证元素有序。
                                        由哈希表保证元素唯一。
                        TreeSet
                                底层数据结构是红黑树。(是一种自平衡的二叉树)
                                如何保证元素唯一性呢?
                                        根据比较的返回值是否是0来决定
                                如何保证元素的排序呢?
                                        两种方式
                                                自然排序(元素具备比较性)
                                                        让元素所属的类实现Comparable接口
                                                比较器排序(集合具备比较性)
                                                        让集合接收一个Comparator的实现类对象
        Map(双列集合)
                A:Map集合的数据结构仅仅针对键有效,与值无关。
                B:存储的是键值对形式的元素,键唯一,值可重复。
               
                HashMap
                        底层数据结构是哈希表。线程不安全,效率高
                                哈希表依赖两个方法:hashCode()和equals()
                                执行顺序:
                                        首先判断hashCode()值是否相同
                                                是:继续执行equals(),看其返回值
                                                        是true:说明元素重复,不添加
                                                        是false:就直接添加到集合
                                                否:就直接添加到集合
                                最终:
                                        自动生成hashCode()和equals()即可
                        LinkedHashMap
                                底层数据结构由链表和哈希表组成。
                                        由链表保证元素有序。
                                        由哈希表保证元素唯一。
                Hashtable
                        底层数据结构是哈希表。线程安全,效率低
                                哈希表依赖两个方法:hashCode()和equals()
                                执行顺序:
                                        首先判断hashCode()值是否相同
                                                是:继续执行equals(),看其返回值
                                                        是true:说明元素重复,不添加
                                                        是false:就直接添加到集合
                                                否:就直接添加到集合
                                最终:
                                        自动生成hashCode()和equals()即可
                TreeMap
                        底层数据结构是红黑树。(是一种自平衡的二叉树)
                                如何保证元素唯一性呢?
                                        根据比较的返回值是否是0来决定
                                如何保证元素的排序呢?
                                        两种方式
                                                自然排序(元素具备比较性)
                                                        让元素所属的类实现Comparable接口
                                                比较器排序(集合具备比较性)
                                                        让集合接收一个Comparator的实现类对象
        
2:到底使用那种集合
        看需求。
        
        是否是键值对象形式:
                是:Map
                        键是否需要排序:
                                是:TreeMap
                                否:HashMap
                        不知道,就使用HashMap。
                        
                否:Collection
                        元素是否唯一:
                                是:Set
                                        元素是否需要排序:
                                                是:TreeSet
                                                否:HashSet
                                        不知道,就使用HashSet
                                       
                                否:List
                                        要安全吗:
                                                是:Vector(其实我们也不用它,后面我们讲解了多线程以后,我在给你回顾用谁)
                                                否:ArrayList或者LinkedList
                                                        增删多:LinkedList
                                                        查询多:ArrayList
                                                不知道,就使用ArrayList
                        不知道,就使用ArrayList
                        
3:集合的常见方法及遍历方式
        Collection:
                add()
                remove()
                contains()
                iterator()
                size()
               
                遍历:
                        增强for
                        迭代器
                        
                |--List
                        get()
                        
                        遍历:
                                普通for
                |--Set
        
        Map:
                put()
                remove()
                containskey(),containsValue()
                keySet()
                get()
                value()
                entrySet()
                size()
               
                遍历:
                        根据键找值
                        根据键值对对象分别找键和值

10 个回复

倒序浏览
风清扬?莫非你是。。。。。
回复 使用道具 举报
感谢分享
回复 使用道具 举报
总结的很好,学习了
回复 使用道具 举报
以梦为码 发表于 2015-7-15 09:21
风清扬?莫非你是。。。。。

说了是刘意老师写的
回复 使用道具 举报
还阔以撒:victory:
回复 使用道具 举报
总结的不错  赞一个!
回复 使用道具 举报
总结的很好,谢谢分享 啊、
回复 使用道具 举报
集合框架知识点总结
回复 使用道具 举报
谢谢分享!
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马