目录
1.原理
1.1 基于HashMap实现
HashSet是个存数据的集合,在HashSet中只能输入一个值。
所以允许空值(默认null)
不是线程安全的(hashMap也不安全)
private transient HashMap map;
// Constructor - 1
// All the constructors are internally creating HashMap Object.
public HashSet()
{
// Creating internally backing HashMap object
map = new HashMap();
}
// Constructor - 2
public HashSet(int initialCapacity)
{
// Creating internally backing HashMap object
map = new HashMap(initialCapacity);
}
// Dummy value to associate with an Object in Map
private static final Object PRESENT = new Object();
1.2 实现了Set接口
与Set一样不允许存入重复数据,而且数据是随机存取(无序的)
1.3 实现了序列化和可克隆化
便利与数据的直接存储和取出利用
2.实现操作
2.1 添加元素add()
注意重复的元素不会存入
hs.add("Geek");
2.2 删除指定单个元素remove()
hs.remove("B");
2.3 删除所有元素clear()
hs.clear();
2.4 判断是否包含元素contains()
返回值为boolean,若存在元素返回true,为空返回false
boolean isNotEmpty = hs.contains();
2.5 判断是否为空isEmpty()
与contains恰好相反
boolean con = hs.isEmpty();
2.6 获得大小size()
int size = hs.size();
2.7 遍历HashSet
2.7.1 使用iterator()迭代器
/**获取对应set的迭代器*/
Iterator itr = hs.iterator();
while (itr.hasNext()){
//TODO
}
2.7.2 for循环遍历
for (String s : hs){
//TODO
}