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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 菜鸟的求学路 中级黑马   /  2015-5-21 17:39  /  1938 人查看  /  56 人回复  /   3 人收藏 转载请遵从CC协议 禁止商业使用本文

可能大家也会知道那些事Java基础中的重点,不错,你才得没错,重点的部分也是面试中的重点:
下面的就是集合框架的知识点
一.集合的作用:
        1.我们之前存储大量数据,可以使用数组:
          数组的弊端:
                1).要先期指定长度;
                2).一旦指定长度,其长度不能改变;
        2.Java为我们提供了大量的"集合类",供我们程序员使用;
        3.这些"集合类"内部使用了不同的"数据结构"来存储对象;
                它们有些:查询快;增删慢;
                    有些:查询慢;增删快;
                    有些:查询快;增删快;但是无序的;
          要根据我们的需要选择不同的集合类;
二.集合框架的层次结构:
        Collection(顶层接口):
                |--List(接口):
                        |--ArrayList(类):数组实现;线程不安全的,效率高;
                        |--Vector(类):数组实现;线程安全的,效率低;
                        |--LinkedList(类):链表实现;线程不安全的,效率高;
                |--Set(接口):
                        |--HashSet(类):哈希表;无序的;线程不安全的,效率高;
                        |--TreeSet(类): 红黑树;排序的;线程不安全的,效率高;
                                        比较的两种方式:
                                                1.存储的对象要实现:Comparable接口,重写compareTo()方法;
                                                2.使用"比较器"实例化TreeSet:Comparator接口,重写compare()方法;
                        |--LinkedHashSet(类):链表,哈希表;由链表保证有序,由哈希保证唯一。线程不安全的,效率高;
        Map(顶层接口):
                |--HashMap(类);哈希表实现的图:无序的。线程不安全的,效率高;
                |--LinkedHashMap(类):链表哈希表实现;有序的。线程不安全的。
                |--TreeMap(类):红黑树实现;排序的(基于自然排序或比较器)。线程不安全的。
                |--Hashtable(类):哈希表实现;无序的。线程安全的,效率低;
三.数据结构:
        1.数组:随机获取元素快;增、删慢;
        2.链表:查找慢;增、删快;
        3.哈希表:结合了数组和链表的优点,查找、增、删都很快;
        4.树:对元素排序的。
四.各种集合的遍历方式:
        使用多态时:
        Collection:
                |--toArray():获取一个Object数组,然后再遍历数组;
                |--iterator()迭代器:Iterator it = col.iterator();
                                     while(it.hasNext()){
                                        Object obj = it.next();
                                     }
                |--增强for
        List:
           |--Collection的所有方式;
           |--结合Collection的size()和List的get()方法,使用for()循环;
        Set:
           |--Collection的所有方式;
        Map:
           |--获取所有键的集合keySet(),之后再遍历Set(使用Collection的方式)
           |--获取所有"键值对"对象entrySet(),之后遍历Set(使用Collection的方式)
五.怎么选择哪种集合:
        根据需要:
        是否需要"键值对"的形式:
                是:Map
                        是否需要"有序":
                                是:LinkeHashMap
                                否:HashMap
                        如果需要"排序":
                                是:TreeMap
                否:Collection:
                      是否"有序","允许重复":
                                是:List
                                        对元素内容,经常的查询,但很少的增、删:选择数组;
                                        对元素内容,经常的增删,很少获取元素:选择链表;
                                否:Set
                                        是否需要排序:
                                                是:TreeSet
                                                否:HashSet
对于三种集合,常用:ArrayList,HashSet,HashMap

56 个回复

倒序浏览
总结的不错  面试会遇到么
回复 使用道具 举报
楼主给力,感谢
回复 使用道具 举报
:victory:顶顶顶
回复 使用道具 举报
学习了。。。
回复 使用道具 举报
总结的不错
回复 使用道具 举报
宥美 中级黑马 2015-5-22 08:51:57
7#
学习了 楼主真棒
回复 使用道具 举报
这是视频上的笔记吧
回复 使用道具 举报
楼主很棒,总结的比较全面
回复 使用道具 举报
谢谢楼主总结,学习到了!
回复 使用道具 举报
学习了,谢谢分享
回复 使用道具 举报
谢谢楼主分享!学习了!
回复 使用道具 举报
灯火通明 来自手机 中级黑马 2015-5-22 11:59:20
13#
感谢楼主经验
回复 使用道具 举报
收藏了,感谢
回复 使用道具 举报
ddddk 来自手机 中级黑马 2015-5-22 12:45:44
15#
总结不错 不过也要结合实际操作来加深认识
回复 使用道具 举报
谢谢  复习知识点挺合适
回复 使用道具 举报
hkbat 中级黑马 2015-5-22 14:47:05
17#
来看看!!
回复 使用道具 举报
这个写的可以。
回复 使用道具 举报
牛啊,学习了
回复 使用道具 举报
不错哦,这总结
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马