HashMap
Hashtable
ConcurrentHashMap
Collection value
Map接口 key-value 数组+链表 1.8(红黑树)
HashMap 线程非安全 键和值都可以为空
Hashtable 线程安全 100 全部锁 键和值都不可以为空
ConcurrentHashMap 线程安全 分段锁 0-10锁住 100 性能角度考虑 JDK1.8
数组加链表,1.8换成红黑树:
HashMap 键和值可以为空
Hashtable 键和值不可为空
都是用put来加入内容
测试一下线程安全:
泛型:
声明了容器所放入的类型 统一的:
for增强语句,1.5开始用。(增强for循环见收藏夹)
增强for循环 用来循环遍历数组和集合。
语法:for(元素类型 e : 数组或集合对象) {
}
ArrayList泛型
ArrayList< >里面放的都是引用类型,
HashSet泛型:
先定义数字和姓名然后创建它的构造函数和get 、set方法:
HashMap泛型:
箭重复的话,后一个会覆盖之前的
HashMap的遍历:(5种)
1.获取value
2.通过获取key,再得到值
(1)获取key
(2)得到值:
3. key+value 的一个内部类对象
写代码时候配合ctrl查看entryset 和 Entry。
泛型两种写法:
4.通过泛型的写法
5.通过泛型 通过Entry
HashMap的一些基本操作:
collection和collections的区别:
collection是个接口
collections是个工具类,包含了一组静态的工具方法
collectios
排序:
反转:
二分查找:
Collections.binarySearch使用前需要先将数组排序: