总结
HashMap
- HashMap:
- 线程不安全
- 以键值对形式存储
- key不能重复,value可以重复
- 可以存null
- 遍历:
- 通过entrySet获取键值对的集合,然后进行forech或迭代器
- 通过keySet获取键的集合,然后进行forech或迭代器
- 获取value的集合:values
Hashtable
- HashTable:
- 线程安全
- 不能有null
- 同步方法
ConcurrentHashMap
- ConcurrentHashMap:
- 线程安全,效率比Hashtable高
- 不能null
- 同步代码块
HashMap和Hashtable的区别
- HashMap:
- 线程不安全,可以存在null的键和值
- 效率高
- Hashtable:
- 线程安全,不可以存null值
- 效率低
- 同步方法
- ConcurrentHashMap(1.6之后):
- 线程安全。不可以存null
- 效率比Hashtable高
- 同步代码块
Properties
-
通常用来读取和加载.properties文件
- Hashtable的子类
- 只能存储String类型的key和value,不能有null
-
关于路径:
- 相对路径:相对项目根路径
- 绝对路径:拥有盘符
-
方法:
setProperties getProperties list load
Collections
-
Collections:
-
对集合操作的工具
-
方法:addAll copy fill max
min reverse sort synchronizedSet
-
泛型
-
泛型:
-
用于指定存放是什么类型的数据
-
在类旁加入泛型:
创建对象是放入什么类型就只能是什么类型的数据,并且类中的T都是这个类型
-
给方法参数加泛型:
- 可以在类上加指定泛型
- 也可以在返回值前面加指定泛型 public static void show(){}
-
泛型名称:
- T 类型
- E 元素
- K 键
- V 值
- 泛型可以是任意的,有行业的规范
-
-
关于泛型的上限和下限:
- 上限:数据只能是指定类型的子类或相同
- 下限:数据只能是指定类型的父类或相同