Java HashSet 源码分析
源码分析
西二旗王员外
我的个人笔记,如果有幸对您有帮助,欢迎点赞…………
展开
-
Java之HashSet源码分析(第四篇:访问元素)
0、HashSet毕竟是作为集合实现的,集合包含、未包含,这样的概念必须突出,所以HashSet没有提供获取一个元素的方法 1、包含元素方法 public boolean contains(Object o) { return map.containsKey(o); } 直接调用了HashMap的containsKey方法,传入的key对象 ...原创 2020-03-03 00:36:35 · 913 阅读 · 0 评论 -
Java之HashSet源码分析(第三篇:删除元素)
0、删除元素,肯定很长用 1、直接看下remove方法 public boolean remove(Object o) { return map.remove(o)==PRESENT; } 直接调用了持有的map的remove方法,该方法若删除元素成功,则会返回旧的value对象;反之会返回一个null。此处巧妙的利用PRESENT对象,Has...原创 2020-03-02 23:47:40 · 1552 阅读 · 0 评论 -
Java之HashSet源码分析(第二篇:添加元素)
0、添加元素 HashSet添加元素只有一个add方法,它接受一个元素对象,这里是HashSet重写了AbstractCollection的add方法 1、add方法源码 public boolean add(E e) { return map.put(e, PRESENT)==null; } map实例变量是HashSet持有的一个HashM...原创 2020-03-02 23:33:25 · 403 阅读 · 0 评论 -
Java之HashSet源码分析(第一篇:创建对象)
0、创建一个Hash对象 有四个构造方法可以使用 1、默认构造方法 public HashSet() { map = new HashMap<>(); } 初始化持有的HashMap对象 2、指定容量的构造方法 public HashSet(int initialCapacity) { map = ...原创 2020-03-03 00:18:01 · 660 阅读 · 0 评论