概述
HashSet实现了Set接口,它不允许集合中出现重复元素。
对于HashSet而言,它是基于HashMap实现的,底层采用HashMap来保存元素,而且只使用了HashMap的key来实现各种特性。相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成,我们应该为保存到HashSet中的对象覆盖hashCode()和equals(),以保证放入的对象的唯一性。
HashSet较HashMap来说比较慢
HashSet中的数据不是key-value键值对,其只是单值,虽然其借助与HashMap来实现,但是其只是将值作为key来存入HashMap中,因为HashMap中的值是key-value键值对的,所以每个HashSet存储到HashMap的数据对应的value值只是一个new Object()对象。
HashSet源码:
public class HashSet<E>
extends AbstractSet<E>
implements Set<E>, Cloneable, java.io.Serializable
{
private transient HashMap<E,Object> map;
public HashSet() {
map = new HashMap<>();
}
最后
以上就是安详流沙为你收集整理的HashSet的全部内容,希望文章能够帮你解决HashSet所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复