Hashset基于HashMap而实现。
特点:
- 不允许有重复的值出现;
- 存储数据是无序的;
- 可以保存null值;
- 线程是不安全的。
线程安全与不安全的区别:
若线程不安全,则多个线程对同一共享数据进行修改时,数据的最终结果是不确定的,只能由最后一次修改的线程所确定;
若线程安全,则可以保证数据的一致性,但由于线程安全,需要增加事务回滚和判定操作,所以速度较慢。
Hashset实现了set接口。
Hashset一般方法代码演示如下:
输出结果为:
注意事项:
Hashset是继承于HashMap,故其类似于套壳集合。
Hashet没有可以获取值的方法,若想获取某个值,只能先判定欲获取的值在不在集合中。
Hashset只能用迭代器或foreach进行遍历,foreach遍历时,需要保证替换元素与集合的类型相同。