java HashSet的使用

今天在写代码时遇到了HashSet,由于之前并不了解,就在网上查了一下原理及使用方法。

HashSet原理

  该类实现了Set接口,HashSet中不允许元素重复,不保证集合中元素的顺序,元素可为null,但最多只能一个。对于 HashSet 而言,HashSet继承自AbstractSet,它是基于 HashMap 实现的,HashSet 底层使用HashMap来保存所有元素。因此HashSet的实现比较简单,相关 HashSet 的操作,基本上都是直接调用底层 HashMap 的相关方法来完成。

常用方法

  构造方法:

    默认构造器:

public HashSet() {
    map = new HashMap<>();
}

    将传入的集合添加到HashSet的构造器

public HashSet(Collection< ? extends E> c) {
    map = new HashMap<>(Math.max((int) (c.size()/.75f) + 1, 16));
    addAll(c);
}

    明确初始容量和装载因子的构造器

public HashSet(int initialCapacity, float loadFactor) {
    map = new HashMap<>(initialCapacity, loadFactor)
}

    仅明确初始容量的构造器(装载因子默认0.75

public HashSet(int initialCapacity) {
    map = new HashMap<>(initialCapacity);
}

猜你喜欢

转载自www.cnblogs.com/qilin20/p/12300384.html