30s搞懂HashSet基本原理与方法

目录

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也不安全)

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
}

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值