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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© missyoyo 中级黑马   /  2014-12-26 22:21  /  2618 人查看  /  21 人回复  /   3 人收藏 转载请遵从CC协议 禁止商业使用本文

1:集合体系(掌握)
        集合
                |--Collection(单列)
                        |--List(有序,可重复)
                                |--ArrayList
                                        底层数据结构是数组,查询快,增删慢。
                                        线程不安全,效率高。
                                |--Vector
                                        底层数据结构是数组,查询快,增删慢。
                                        线程安全,效率低。
                                |--LinkedList       
                                        底层数据结构是链表,查询慢,增删快。
                                        线程不安全,效率高。
                        |--Set(无序,唯一)
                                |--HashSet
                                        底层数据结构是哈希表。
                                        线程不安全,效率高。

                                        怎么保证唯一性的呢?
                                        它依赖两个方法:hashCode()和equals()
                                        顺序:
                                                首先判断hashCode()值是否相同。
                                                同:继续走equals(),看返回值
                                                        如果true:就不添加到集合。
                                                        如果false:就添加到集合。
                                                不同:就添加到集合。
                                |--TreeSet
                                        底层数据结构是二叉树。
                                        线程不安全,效率高。

                                        怎么保证唯一性的呢?是根据返回是否是0。
                                        怎么保证排序的呢?两种方式
                                                自然排序(元素具备比较性)
                                                        实现Comparable接口
                                                比较器排序(集合具备比较性)
                                                        实现Comparator接口
                |--Map(双列 底层结构是针对键有效,跟值无关)
                        |--HashMap
                                底层数据结构是哈希表。
                                线程不安全,效率高。

                                怎么保证唯一性的呢?
                                它依赖两个方法:hashCode()和equals()
                                顺序:
                                        首先判断hashCode()值是否相同。
                                        同:继续走equals(),看返回值
                                                如果true:就不添加到集合。
                                                如果false:就添加到集合。
                                        不同:就添加到集合。
                        |--Hashtable
                                底层数据结构是哈希表。
                                线程安全,效率低。

                                怎么保证唯一性的呢?
                                它依赖两个方法:hashCode()和equals()
                                顺序:
                                        首先判断hashCode()值是否相同。
                                        同:继续走equals(),看返回值
                                                如果true:就不添加到集合。
                                                如果false:就添加到集合。
                                        不同:就添加到集合。
                        |--TreeMap
                                底层数据结构是二叉树。
                                线程不安全,效率高。

                                怎么保证唯一性的呢?是根据返回是否是0。
                                怎么保证排序的呢?两种方式
                                        自然排序(元素具备比较性)
                                                实现Comparable接口
                                        比较器排序(集合具备比较性)
                                                实现Comparator接口

2:应用。(添加功能,判断功能,删除功能,获取功能,长度功能)
        Collection
                add(Object obj)
                remove(Object obj)
                contains(Object obj)
                iterator()
                size()
               
                |--List
                        get(int index)
                        add(int index,Object obj)
                        remove(int index)
                        set(int index,Object obj)
                |--Set

        Map
                put(Object key,Object value)
                remove(Object key)
                containsKey(Object key)
                containsValue(Object value)
                size()
                get(Object key)
                keySet()
                values()

3:遍历方式
        List:
                迭代器
                增强forJDK1.5新特性
                普通for

                如果仅仅为了遍历,用任意一种即可。一般选择前两种的任意一种。
                如果要做修改,或者删除指定位置的元素,或者在指定位置添加元素。用普通for。
        Set:
                迭代器
                增强for

                任选一种。
        Map:
                键找值。





5:各类集合什么时候该用谁?
                        是否存一对,键从0开始有序依次增高,数组
                        键与值无序,Map集合
                        是否对键排序?
                                是:TreeMap
                                否:HashMap
                        不懂的情况下,使用HashMap。

                否:Collection
                        是否唯一
                                是:Set
                                        是否对元素进行排序?
                                                是:TreeSet
                                                否:HashSet
                                        不懂的情况下,使用HashSet
                                否:List
                                        是否要安全:
                                                是:Vector(淘汰)
                                                        List list = Collections.synchronizedList(new ArrayList());

                                                否:ArrayList,LinkedList
                                                        查询多:ArrayList
                                                        增删多:LinkedList
                                        不懂的情况下,使用ArrayList

评分

参与人数 3黑马币 +35 收起 理由
泡沫__opt + 10 很给力!
ゞWinzows_♫ + 20
杨佳名 + 5

查看全部评分

21 个回复

倒序浏览
大神  为什么要重写HashCode啊
回复 使用道具 举报
不错 谢谢分享
回复 使用道具 举报
学习了,总结的很好。学集合就是该多总结,回头我也总结一份去
回复 使用道具 举报
不太熟练集合框架的用法 怎么办啊
回复 使用道具 举报
学习了!
回复 使用道具 举报
学习一下
回复 使用道具 举报
那么给力的总结啊!顶一下!
回复 使用道具 举报
集合框架算是基础的一个难点,多多联系啊,才是王道
回复 使用道具 举报
过来学习一下
回复 使用道具 举报
来看一下,学习学习~~
回复 使用道具 举报
陈召 中级黑马 2014-12-27 22:02:32
12#
不错不错,感谢分享。
回复 使用道具 举报
学习一下。。。。。。。。。。
回复 使用道具 举报
总结的很好!
回复 使用道具 举报
路过。。看看
回复 使用道具 举报
好帖~~顶起!!!
回复 使用道具 举报
又温习了一遍,谢谢分享!
回复 使用道具 举报
总结的很好,赞!
回复 使用道具 举报

总结的很好!
回复 使用道具 举报
黑马币怎么是负的?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马