赞
踩
研究生一枚,为后端实习和未来工作打基础。无意间发现韩顺平老师的课程,细心细致,讲课和吴恩达老师一样,都是保姆式讲解,各种基础知识都会补充,爱了。
韩顺平老师课程地址:https://www.bilibili.com/video/BV1fh411y7R8?spm_id_from=333.999.0.0
阅读提醒:本笔试适合有编程语言基础的伙伴阅读,因为本兔兔是本专业的,有c、c++、python 、sql基础,笔记中特别的基础的内容就没有记录。完全零基础的小伙伴建议跟着韩老师的课程自己记录。
1、JDK8中其子类的特点
- 保存的数据是双列数据:Key——Value
- 数据保存的位置:是HashMap$Node中,Node又实现了Entry接口。想想HashSet呀!
有说法一对k-v是一个Entry。其实并不是,Entry中存放的是k-v的地址,是为了方便程序员对k-v进行遍历。数据真正存放的位置还是Node中
韩老师解读Node 和 EntrySet的联系:
Map.Entry提供了重要的方法getKey(),getValue()方法:
- Map还有keySet()、values()方法直接实现集成所有的Key和Value。和entrySet()方法有异曲同工的作用。
- Map中的Key是不允许重复的!Value可以重复想想HashSet底层是HashMap,可不就是一直在保证Key不重复吗!
但是特别的,当put一个已有的Key,实际是将这个Key对应的Value进行修改:
- Map中的Key可以存放null,最多存一个;Value也可以存放null,数量无限制
- 方法的操作对象基本也是Object对象,所以很灵活
- 通过get(Key)可以得到对应的Value
2、体系结构图
3、常用方法
(接收的对象一般都是Object类,很灵活)
4、三种遍历方式
上图包含三种遍历方式:
每种方法中又可以分别使用增强for和迭代器遍历,所以是六种组合遍历方式
方式1:Map的entrySet()方法——取得的是k-v对
方式2:Map的KeySet()方法——取得的是所有key的集合
根据key的集合,使用Set的两种遍历方法(增强for,iterator)获得key对应的value。
方式3:Map的Values()方法——取得的是所有Value的集合
Map接口的实现类——HashMap 、HashTable、Properties
1、概念
2、线程不安全
3、底层存储机制,HashSet已经讲过一遍了。类似
4、扩容机制和红黑树机制
详见上一篇文章, HashSet中的,一样的
1、概念
- 仍然存放键值对
- 使用方法同HashMap
线程安全
2、
特殊的地方
3、底层存储机制
4、底层扩容机制
5、HashTable子类 Properties类
主要用于 对配置文件 ( .properties )的操作。
可以加载配置文件的数据到 Properties类中,进行读取和修改。
主要是为了实现自定义排序,使用方法同TreeSet,同时也是TreeSet的底层支持。
1.集合中,到底如何选择类(集合大总结 )
2.集合中,关于null能否存放的问题总结
3.集合中,关于 去重机制 的总结
4.HashSet ,HashMap的存储底层是数组 + 链表 + 红黑树,去重机制的hashCode()+equals() ,这就使得我们要注意:
5.Vector 与 ArrayList
6.HashSet , HashMap ,Hashtable的底层存储的对象类型:
1、概念
操作List、Set、Map的类(工具类)
提供了一系列
静态方法
,对集合元素进行排序、修改、查询等操作:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。