当前位置:   article > 正文

Java HashSet介绍、使用方法详解及底层实现分析

java hashset

目录

1. HashSet介绍

2. 使用方法

2.1 添加元素 

2.2  判断元素是否存在

2.3 删除元素 

2.4 计算集合元素个数

2.5 迭代HashSet

 3. 底层实现分析

1. HashSet介绍

        HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。HashSet 允许有 null 值。HashSet 是无序的,即不会记录插入的顺序。 HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 必须在多线程访问时显式同步对 HashSet 的并发访问。 HashSet 实现了 Set 接口。

        HashSet 中的元素实际上是对象,一些常见的基本类型可以使用它的包装类

HashSet 类位于 java.util 包,使用前需要导入。

  import java.util.HashSet;

创建一个 HashSet 对象 set,用于保存字符串元素。

  HashSet<String> set = new HashSet<>();

2. 使用方法

2.1 添加元素 

 

实例:

  1. HashSet<String> set = new HashSet<>();
  2. // 添加元素
  3. set.add("张三");
  4. set.add("李四");
  5. set.add("张三");
  6. System.out.println(set);// 输出结果:[李四, 张三]
  7. // 张三被添加了两次,它在集合中也只会出现一次,因为集合中的每个元素都必须是唯一的。

2.2  判断元素是否存在

 

实例:

  1. HashSet<String> set = new HashSet<>();
  2. // 添加元素
  3. set.add("张三");
  4. set.add("李四");
  5. // 判断元素是否存在
  6. System.out.println(set.contains("李四"));// 输出结果:true
  7. System.out.println(set.contains("王二"));// 输出结果:false

2.3 删除元素 

 

 实例:

  1. HashSet<String> set = new HashSet<>();
  2. // 添加元素
  3. set.add("张三");
  4. set.add("李四");
  5. set.add("王二");
  6. // 删除元素,删除成功返回true,否则返回false
  7. System.out.println(set.remove("张三"));// 输出结果:true
  8. System.out.println(set);// 输出结果:[李四, 王二]

2.4 计算集合元素个数

 

 实例:

  1. HashSet<String> set = new HashSet<>();
  2. // 添加元素
  3. set.add("张三");
  4. set.add("李四");
  5. set.add("王二");
  6. // 计算集合中元素个数
  7. System.out.println(set.size());// 输出结果:3

2.5 迭代HashSet

实例:

  1. HashSet<String> set = new HashSet<>();
  2. // 添加元素
  3. set.add("张三");
  4. set.add("李四");
  5. set.add("王二");
  6. for (String s : set) {
  7. System.out.println(s);
  8. }// 输出结果:张三
  9. 李四
  10. 王二

 3. 底层实现分析

        HashSet 的实现是依赖于HashMap 的,HashSet 的值都是存储在HashMap中的。在HashSet 的构造法中会初始化一个HashMap对象,HashSet不允许值重复。因此,HashSet 的值是作为 HashMap的key存储在HashMap中的,当存储的值已经存在时返回 false 。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/67264
推荐阅读
相关标签
  

闽ICP备14008679号