黑马程序员——java集合框架
来源:互联网 发布:notepad格式化php代码 编辑:程序博客网 时间:2024/05/16 07:10
先上图,照着图学:
有人会问,这么多的英文字母咋学啊?
这个问题问的好,话说为什么先上图呢,就是让你知道你所应该学的东西都在这里
仁哥给分析一下:
图中有4个特别黑的黑框框,都能想到这是重点,没错,就是重点,常用所以重点。然后再看他们的后缀,有List和Set还有Map,很明显这是3个接口,细心点就会发现里面List和Set都指向Collection,意思就是说这3个接口是继承关系。Map指向Collection但用的是黑色的箭头下面还多了个Procuces细心一想就知道这不是简单的接口继承接口,事实上他们只是处于一个框架之内,所以会产生这种关系,这也不足为奇就像一个Map的对象调用keySet()方法,返回的还是Collection。
(因为要原创,所以全部手打,好辛苦啊,希望我写的东西以前没人写过,这样自己的付出才值得)
有人会问,你这都讲吗,我记不住啊!!!
然后这就是这篇blog的存在的价值,我要告诉你集合框架的记忆法则:
Collection:所有的子类都只是是一个组,Map所有的子类都是键值关系
List Tree Linked:带这后缀或者前缀的都是有序的,存取,联想下,List啥意思,有结构的Tree也一样
Linked:带着个的都有一个内部的链表,链表是啥,当然也是有序的了,链表大家都知道,就是存储空间不连续,不连续就会遍历的时候慢,查的慢。哪个是连续的呢?ArrayList是也
再谈Hash,你会说记得有个hashtable没错,是有这个东西,java里面也有,就是HashTable,但是很少用,原因是开销高,尽管确保了线程安全,但是通常不需要这么大的功能,HashMap足够,同理,常用的也是ArrayList不是LInkedList,Linked不好查找,对性能的影响比较大
有人问会问,仁哥我不知道hash,
好吧,我给你讲讲,有一个叫hash算法的东西(已经很久没接触算法了),通过一个hashcode来确保元素的唯一性,能够实现快速的查找,比如一个三维数组a[2][3][4],找到这里面的某个元素不需要2*3*4,需要的仅仅是2+3+4的复杂度,这就是质的飞跃(只能帮你到这里了)
再谈不可重复:
这个需要记忆的,不可重复的都有set所以,如果找不可重复又要有序的,就要再set下面找了,SetTree一般是用来什么排序什么的,那就是LinkedHashSet了,以前曾经见到一道题就是考这个的
另外需要知道的就是HashMap允许空值也是不可重复,这也是常考的,话说上面没有Vector,好吧,没有就没有,有些东西太强大会影响自身的发展
- 黑马程序员——Java集合框架
- 黑马程序员——Java集合框架
- 黑马程序员——java集合框架
- 黑马程序员——java-集合框架
- 黑马程序员——JAVA集合框架
- 黑马程序员——java集合框架
- 黑马程序员——Java集合框架
- 黑马程序员——Java集合框架
- 黑马程序员—java集合框架应用
- 黑马程序员—java集合框架
- 黑马程序员—Java集合框架(LinkedList)
- 黑马程序员—java集合框架整理
- 黑马程序员—Java集合框架
- 黑马程序员—集合框架
- 黑马程序员—集合框架
- 黑马程序员—集合框架
- 黑马程序员—集合框架
- 黑马程序员—集合框架
- 单点触摸和多点触摸的使用方法
- kafka使用笔记
- Content Provider
- 在Eclipse中安装jar包到本地Maven仓库
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(5):数据初始化(四)
- 黑马程序员——java集合框架
- Yod Framework v1.3.5 发布,基于 C 的 PHP 框架
- BIRT参数设置详解
- 【LeetCode从零单排】No189.Rotate Array
- SDK 镜像整合工具
- Intent启动Activity,怎么匹配intent-Filter
- 写出一个你自己的MVC框架-基于对springMVC源码实现和理解(6):执行,调度和渲染(一)
- 网络流模板
- 从今天开始开更博客