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