HashSet
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
HashSet继承自AbstractSet并实了Set接口,它创建了一个使用哈希表进行存储的集合,并且是无序的。
当向HashSet集合中存入一个元素时,HashSet会调用该对象的hashCode()
方法来得到该对象的hashCode
值,然后根据hashCode
值来决定该对象在HashSet中存储位置。
简单的说,HashSet集合判断两个元素相等的标准是两个对象通过equals
方法比较相等,并且两个对象的hashCode()
方法返回值相等。
当我们要把一个对象放入HashSet中时,我们应该重写该对象对应类的equals
方法,也应该重写其hashCode()
方法。其规则是如果两个对象通过equals
方法比较返回true时,其hashCode也应该相同。另外,对象中用作equals
比较标准的属性,都应该用来计算hashCode
的值。
通过下面的语句我们声明了一个HashSet,此处我们采用了默认的构造函数:
HashSet mySet = new HashSet();
下表中列出了HashSet常用的方法。
编号 | 方法描述 |
---|---|
1 | boolean add(Object o) 将元素添加至set中(当前set不包含当前元素)。 |
2 | void clear() 删除set中的所有元素。 |
3 | Object clone() 返回当前HashSet实例的潜复制引用,HashSet中的元素并未复制。 |
4 | boolean contains(Object o) 当前set如果包含指定元素则返回为真,否则返回为假。 |
5 | boolean isEmpty() 如果当前set不包含任何元素则返回为真,否则返回为假。 |
6 | Iterator iterator() 返回set对应的iterator引用。 |
7 | boolean remove(Object o) 从当前set中删除指定元素。 |
8 | int size() 返回当前set中的元素个数。 |
下面的Java程序描述了上述方法的使用方式。
在线练习
{$ activeFileHint $}