笔记是看黑马视频一边做的,主要是用于自己复习用。
https://blog.csdn.net/HDZ1821/article/details/104577474 详细请了解这篇文章。
目录
Map集合
空指针可以赋值给Integer类,但是不能赋值给int,会报错,NullPointerException
Map集合概述:
类HashMap概述:
基于【哈希表】(数组+链表/红黑树) 无序
此类不保证映射顺序,也不保证顺序恒久不变。
此实现不是同步的——多线程——速度快。
它下面也有一个
类 LinkedHashMap 概述:
基于【哈希表】(数组+链表/红黑树)和链接列表实现, 有序。
Map接口中的常用方法:
详解:
1.put
2.remove
3.get
4.containsKey
例子:
1.put
2.remove
空指针可以赋值给Integer类,但是不能赋值给int,会报错,NullPointerException
3.get
4.containsKey
Map集合遍历键找值方式:第一种。
图解:
代码:
第二种Entry键值对 对象
图解:
代码:
使用HashMap存储自定义类型键值:
概述:
因为只有重写之后了,才能保证key值唯一
例子:
如果value重复,那么就会用新的value值去替换旧的value值了。
要进入Person类之后重写方法了,才能保证下面的是对的。
LinkedHashMap集合:
概述:
例子:
上面的是不可预知,下面的可预知:
HashTable集合
概述:
它是Map接口的另外一个实现类:HashTable集合
1. 它也是一个双列集合,底层也是一个哈希表。
2. 之前学习到的所有的集合都能存储空这种元素。
而这个HashTable元素不允许存储空,也就是它的键和值都不能为空。
3. 它是一个最早期的双列集合,在jdk1.0版本就出现了。
4.它是同步的——单线程的——安全——慢