欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

源码分析--HashSet(JDK1.8)

程序员文章站 2023-04-01 08:41:43
HashSet为无序不可重复集合。底层几乎全部借助HashMap实现,比较简单。本篇简要分析一下HashSet源码。 首先是成员变量: 1、真正保存数据的HashMap实例 2、map实例的值 常用方法: 1、add() 从这个HashSet的add()方法中,可以看出。HashSet的不可重复,主 ......

  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键的迭代器。