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