(注意:本文基于JDK1.8)
前言
分析完添加元素,本文分析删除元素,先看下HashSet删除元素的方法
remove()方法用于删除匹配的元素
clear()方法用于清空所有元素
remove()方法源码分析
public boolean remove(Object o) {
return map.remove(o)==PRESENT;
}
用于删除元素的方法,传入的Object对象表示需要删除的元素
1、先调用HashMap的remove()方法进行元素的删除
直接调用HashSet对象持有的HashMap的remove()方法,为remove()方法传入Object对象,HashMap的remove()方法删除元素成功后,会返回旧的Value对象
2、将HashMap的remove()方法与PRESENT对象进行比较
如果HashMap的remove()方法成功删除对应的元素,返回的是旧的PRESENT对象,此时与通过与PRESENT对象进行对比,表示删除的结果
3、向调用者返回删除结果
true: 代表删除元素成功
false:代表删除元素失败
clear()方法源码分析
public void clear() {
map.clear();
}
用于删除HashSet中所有元素的方法
1、直接调用HashMap的clear()方法完成元素的删除
map是HashSet持有的一个HashMap对象,通过调用此HashMap对象clear()方法,完成删除工作
总结
1、HashSet删除元素、清空元素,完全依赖于持有的HashMap对象,全部是调用HashMap的方法进行的!