赞
踩
目录
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<>();
实例:
- HashSet<String> set = new HashSet<>();
- // 添加元素
- set.add("张三");
- set.add("李四");
- set.add("张三");
- System.out.println(set);// 输出结果:[李四, 张三]
- // 张三被添加了两次,它在集合中也只会出现一次,因为集合中的每个元素都必须是唯一的。
实例:
- HashSet<String> set = new HashSet<>();
- // 添加元素
- set.add("张三");
- set.add("李四");
- // 判断元素是否存在
- System.out.println(set.contains("李四"));// 输出结果:true
- System.out.println(set.contains("王二"));// 输出结果:false
实例:
- HashSet<String> set = new HashSet<>();
- // 添加元素
- set.add("张三");
- set.add("李四");
- set.add("王二");
- // 删除元素,删除成功返回true,否则返回false
- System.out.println(set.remove("张三"));// 输出结果:true
- System.out.println(set);// 输出结果:[李四, 王二]
实例:
- HashSet<String> set = new HashSet<>();
- // 添加元素
- set.add("张三");
- set.add("李四");
- set.add("王二");
- // 计算集合中元素个数
- System.out.println(set.size());// 输出结果:3
实例:
- HashSet<String> set = new HashSet<>();
- // 添加元素
- set.add("张三");
- set.add("李四");
- set.add("王二");
- for (String s : set) {
- System.out.println(s);
- }// 输出结果:张三
- 李四
- 王二
HashSet 的实现是依赖于HashMap 的,HashSet 的值都是存储在HashMap中的。在HashSet 的构造法中会初始化一个HashMap对象,HashSet不允许值重复。因此,HashSet 的值是作为 HashMap的key存储在HashMap中的,当存储的值已经存在时返回 false 。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。