HashSet是如何保证其中的元素不重复的呢?
下文笔者讲述HashSet中保证元素不重复的方法说明,如下所示
实现思路: 在HashSet元素添加时 采用HashMap进行存储 并且HashSet中的元素直接作为HashMap的键 由于HashMap的键永远不会重复,所以HashSet的值唯一 ------------HashSet值不会重复大白话------------- HashSet其实底层是使用HashMap进行数据存储,并且HashSet的值都放在HashMap的key上
HashSet添加元素的源码
private static final Object PRESENT = new Object(); private transient HashMap<E,Object> map; public HashSet() { map = new HashMap<>(); } //e为添加的元素 //e作为HashMap的键进行存储 public boolean add(E e) { // 调用HashMap的put方法,PRESENT是一个至始至终都相同的虚值 return map.put(e, PRESENT)==null; }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。