Java(1.8)集合中的HashSet

Java(1.8) 集合中的LinkedList
Java(1.8) 集合中的ArrayList
Java(1.8)集合类中的HashMap

Set 接口也实现了Collection接口,Set中可以存储不重复的元素。
下面看看其中一个实现类HashSet的底层实现原理:
HashSet底层用HashMap来实现的,Set的元素存储到Mapkey, Value 则存储一个相同的对象Object

    private transient HashMap<E,Object> map;

    // Dummy value to associate with an Object in the backing Map
    private static final Object PRESENT = new Object();

其中的方法:add(E e)直接把元素放到map中。

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

方法:remove(Object o)也直接从map中移除

 public boolean remove(Object o) {
        return map.remove(o)==PRESENT;
    }

另外,Set中没有看到get相应的方法。原因应该是Set是无序的,没有必要设计这个方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Collection ├List │├LinkedList │├ArrayList │└Vector │└Stac...
    AndyZX阅读 4,334评论 0 1
  • 实际上,HashSet 和 HashMap 之间有很多相似之处,对于 HashSet 而言,系统采用 Hash 算...
    曹振华阅读 7,192评论 1 37
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,896评论 18 399
  • 3.3 集合 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另...
    闫子扬阅读 4,048评论 0 1
  • 我每天都守望着你, 为你忍受着生命的痛苦和欢乐, 我愿我的心, 被你的沉默所填满。 ---写于2011年。
    卡布奇诺花蜜阅读 4,181评论 0 50