HashSet为无序不可重复集合。底层几乎全部借助HashMap实现,比较简单。本篇简要分析一下HashSet源码。

首先是成员变量:

  1、真正保存数据的HashMap实例

private transient HashMap<E,Object> map;

  2、map实例的值

private static final Object PRESENT = new Object();

常用方法:

  1、add()

 public boolean add(E e) {
return map.put(e, PRESENT)==null;
}

  从这个HashSet的add()方法中,可以看出。HashSet的不可重复,主要就是利用Map相同键会进行值覆盖的特性完成的。

  2、迭代方法

public Iterator<E> iterator() {
return map.keySet().iterator();
}

  直接就是返回Map键的迭代器。

最新文章

  1. Gulp基础
  2. excel小技巧
  3. Bash 的 no-fork 优化
  4. iis 不能访问json文件
  5. ArcGIS中的三种查询
  6. Android之BroadcastReceiver1
  7. JS中的this好神奇,都把我弄晕了
  8. Linux msgsnd : invalid argument
  9. OK335xS Qt network hacking
  10. hdoj 4006 The kth great number【优先队列】
  11. windows+Ubuntu双系统 windows引导修复
  12. Android UI ActionBar功能-自定义Tab功能
  13. ios 中的构造方法
  14. jedis异常:NoSuchElementException: Timeout waiting for idle object
  15. Spring BeanFactory源码学习
  16. python 3---if判断成绩练习
  17. 【Python3爬虫】常见反爬虫措施及解决办法(三)
  18. ArcGIS——使用符号级别区分重叠的面图层
  19. 【Spring】1、Spring 中的监听器 Listener
  20. 【Git使用】SourceTree可视化工具的安装和使用攻略

热门文章

  1. 前端每日实战:91# 视频演示如何用纯 CSS 创作一个行驶中的火车 loader
  2. 搭建vue项目并启动vue项目
  3. 033:DTL常用过滤器(2)
  4. [CH5E02] A Little Shop of Flowers
  5. 卷积神经网络(Text--cnn)(知识点整理)
  6. FMDB复习
  7. redis学习 --List
  8. ward&#39;s method分层聚类凝聚法
  9. Windows环境下使用Mycat模拟分库分表-读写分离案例
  10. 不间断电源(UPS)