总结
HashSet
实现了Set
接口,是一个不能够存放重复元素的容器- 内部直接使用
HashMap
实现,即底层使用数组存储数据(HashMap JDK1.8使用数组+链表+红黑树, HashSet只需要用到数组部分即可,因为保存的都是不相等元素,不存在hash冲突的情况) - 线程不安全。如果想变成线程安全的,可以使用
Collections.synchronizedSet(new HashSet(...))
给原有的Set方法同步
HashSet
实现了Set
接口,是一个不能够存放重复元素的容器HashMap
实现,即底层使用数组存储数据(HashMap JDK1.8使用数组+链表+红黑树, HashSet只需要用到数组部分即可,因为保存的都是不相等元素,不存在hash冲突的情况)Collections.synchronizedSet(new HashSet(...))
给原有的Set方法同步