HashSet
Set集合的最主要特性就是沒有重復元素垄懂,HashSet是Set的一個字類,其內(nèi)部基于HashMap實現(xiàn),因此HashSet的實現(xiàn)比較簡單请垛,相關HashSet的操作绒净,基本上都是直接調用底層HashMap的相關方法來完成
// 底層使用HashMap來保存HashSet的元素
private transient HashMap<E,Object> map;
// 由于Set只使用到了HashMap的key见咒,所以此處定義一個靜態(tài)的常量Object類,來充當HashMap的value
private static final Object PRESENT = new Object();
總結
- HashSet非線程安全
- HashSet基于HashMap實現(xiàn)無容量限制
- 允許null值
- 添加值得時候會先獲取對象的hashCode方法挂疆,如果hashCode 方法返回的值一致改览,則再調用equals方法判斷是否一致,如果不一致才add元素