黑马程序员技术交流社区

标题: HashSet 的部分源码实现 [打印本页]

作者: fmi110    时间: 2015-10-5 15:12
标题: HashSet 的部分源码实现
HashSet 是用Map实现的,向set添加元素,其实就是向内部的map添加一个Key,即添加的元素作为key,而值为一个静态Object对象,即所有 的key都映射到该对象上,set的删除调用了额 map.remove(key),如果key存在  则返回真,否则返回假
  1. public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable,
  2.                 java.io.Serializable {
  3.         static final long serialVersionUID = -5024744406713321676L;

  4.         private transient HashMap<E, Object> map;

  5.         private static final Object PRESENT = new Object();

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

  9.         public boolean remove(Object o) {
  10.                 return map.remove(o) == PRESENT;
  11.         }
  12. }
复制代码



作者: 赵存金    时间: 2015-10-5 16:12
还没学到这个类。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2