0
点赞
收藏
分享

微信扫一扫

集合和映射表(一)

young_d807 2022-03-13 阅读 73

目录

知识点总结

集合

HashSet


知识点总结

集合(set)是一个用于存储和处理无重复元素的高级数据结构。

映射表(map)类似于目录,提供了使用键值快速查询获取值的功能。

集合

我们通常使用集合的三个具体类HashSet、LinkedHashList、TreeSet来创建集合。

HashSet

HashSet类是一个实现了Set接口的具体类,可以使用HashSet的无参构造方法来创建空的散列表(hash set),也可以由一个现有的合集创建散列表。默认情况下,初始容量为16而负载系数是0.75。

我们先来介负载系数这个概念。

负载系数:在增加集合的容量之前,负载系数测量该集合允许多满。当元素个数超过了容量与负载系数的乘积,容量就会自动翻倍。

例如:如果容量是16,而负载系数是0.75,那么当集合的长度达到12(16 * 0.75 = 12)时,容量将会翻倍到32。比较高的负载系数会降低空间开销,但是会增加查找时间。通常情况下,默认的负载系数是0.75,该默认值是在时间开销和空间开销上一个很好的权衡。我们将在后续的文章中更加深入地讨论负载系数。

下面我们通过两个小例子来理解HashSet。

import java.util.HashSet;
import java.util.Set;

/**
 * @author magpieeeee
 * @Date 2022/3/13 21:59
 * @description:
 */
public class Do_01_TestHashSet {
    public static void main(String[] args) {
        // 创建一个 set
        Set<String> set = new HashSet<>();

        // 像set中添加元素
        set.add("Beijing");
        set.add("Lichuan");
        set.add("Lichuan");
        set.add("Nanjing");
        set.add("Shanghai");
        set.add("Shenzhen");

        System.out.println(set);

        for(String temp : set) System.out.print(temp + " ");

    }
}

 输出结果为:

该程序将多个字符串添加到集合中(15~20行)。其中我们发现Lichuan被添加多次,但是只有一个被存储,正如开头所说,集合(set)是一个用于存储和处理无重复元素的高级数据结构。

另外,如输出所示,字符串没有按照我们输入的顺序存储,因为散列集中的元素是没有特定的顺序的。要强加给散列集一个顺序,就需要使用LinkedHashSet类,这个类,我们将在下一篇中详细讨论。

举报

相关推荐

0 条评论