Java中的HashSet
介绍:
Java中的HashSet实现Set接口,即它不允许重复。 它在内部由HashMap支持,该哈希表基于哈希原理。
我们可以在HashSet中存储一个空值。 默认容量为16,负载系数为0.75,其中:
Load factor = Number of Stored Elements / capacity
Java HashSet是不同步的。 同样,不能保证保留元素的插入顺序。
在本教程中,我们将学习如何使用Java HashSet 。
实例化
我们可以使用以下构造函数之一创建Java HashSet :
HashSet() // default capacity of 16 with a load factor of 0.75
HashSet(int initialCapacity)
HashSet(int initialCapacity, float loadFactor)
HashSet(Collection c)
这些构造函数的用法都很直观。
让我们使用默认构造函数快速创建一个HashSet:
Set<Integer> set = new HashSet<>();
常用方法:
现在让我们看一些可以帮助我们操纵Java HashSet的方法:
1.
它只是将元素添加到给定的集合(如果尚不存在)。 如果该元素已经存在,则add()仅返回false:
System.out.println(set.add(1)); //true
System.out.println(set.add(2)); //true
System.out.println(set.add(3)); //true
System.out.println(set.add(1)); //false - as already present//Note that the order of elements isn't guaranteed
System.out.println(set); //[1, 2, 3]
2.
如果元素在引用集中存在,则contains()方法返回true ,否则返回false :
System.out.println(set.contains(1)); //true
System.out.println(set.contains(4)); //false
3.
顾名思义,它将删除元素obj(如果存在)并返回true 。 如果不存在这样的元素,则仅返回false :
System.out.println(set.remove(1)); //true
System.out.println(set.remove(4)); //false
请注意, HashSet还继承了removeAll()和removeIf()方法,可用于删除值。
4.
对于空集返回true ,否则返回false :
System.out.println(set.isEmpty()); // false
5. int
它仅返回给定集中存在的元素数。
6.
clear()方法删除引用集中存在的所有值,从而使其成为空集。
内部实施:
HashSet在内部使用HashMap来存储其元素。 存储在HashSet中的元素被映射为HashMap中的键。 所有这些条目的值字段都包含一个常量PRESENT:
private static final Object PRESENT = new Object();
这是一个虚拟对象。
遍历
我们可以使用以下一种方式来迭代HashSet中的元素:
1.
从Java 8开始,我们可以使用forEach()遍历任何Java 集合:
set.forEach(e -> System.out.println(e));
2.
Java 8还支持forEachRemaining()构造,该构造可与Collection上的任何迭代器一起使用:
Iterator<Integer> itr = set.iterator();itr.forEachRemaining(e -> System.out.println(e));
3.使用
如果我们使用的是Java 7或更低版本,我们可以简单地使用迭代器进行迭代:
Iterator<Integer> itr = set.iterator();while(itr.hasNext()) {System.out.println(itr.next());
}
4.扩展
我们还可以使用扩展的for循环遍历元素:
for(Integer e : set) {System.out.println(e);
}
结论:
在本教程中,我们学习了如何创建和使用Java HashSet。 我们也知道Java HashSet在内部使用HashMap来实现它。
成为第一个发表评论的人。
翻译自: https://www.javacodegeeks.com/2019/04/hashset-java.html
Java中的HashSet相关推荐
- java中hashset_Java HashSet – Java中的HashSet
java中hashset Java HashSet is the most popular implementation of Set interface. java.util.HashSet is ...
- 用Java中的HashSet写一个学生管理系统(添加、删除、修改、查询学生信息)
不废话,上代码: 先创建一个Student类: public class Student {private String id;private String name;private String m ...
- JAVA中的Hashset类
HashSet扩展AbstractSet并且实现Set接口.它创建一个类集,该类集使用散列表进行存 储.正像大多数读者很可能知道的那样,散列表通过使用称之为散列法的机制来存储信息. 在散列(hashi ...
- Java中的HashSet和TreeSet
一. 问题 1. HashSet,TreeSet是如何使用hashCode()和equal()方法的 2. TreeMap,TreeSet中的对象何时以及为何要实现Comparable接口? 二. 回 ...
- java中Hashset集合删除元素_从Java中的HashSet中删除单个元素
要从HashSet中删除单个元素,请使用remove()方法. 首先,创建一个HashSet-HashSet hs = new HashSet(); 现在,将元素添加到HashSet-hs.add(& ...
- java中的HashSet内部是如何工作的
HashSet 的内部采用 HashMap来实现.由于 Map 需要 key 和 value,所以HashSet中所有 key 的都有一个默认 value. 类似于HashMap,HashSet 不允 ...
- java中的hashset_Java中的HashSet
java中的hashset 介绍: Java中的HashSet实现Set接口,即它不允许重复. 它在内部由HashMap支持,该哈希表基于哈希原理. 我们可以在HashSet中存储一个空值. 默认容量 ...
- 再也不担心问到Java集合了,一文讲透Java中的数据结构
Java数据结构实现详解 摘要 1 集合框架 1.1 顶层接口Iterable 1.2 Collection接口 2 List 2.1 List接口 2.2 List实现ArrayList 2.2.1 ...
- Java中如何克隆集合——ArrayList和HashSet深拷贝
2019独角兽企业重金招聘Python工程师标准>>> 编程人员经常误用各个集合类提供的拷贝构造函数作为克隆List,Set,ArrayList,HashSet或者其他集合实现的方法 ...
最新文章
- 雷达多普勒频率计算公式_非接触式雷达在线测流系统是由什么组成的?
- 最常用的15大Eclipse开发快捷键技巧
- MySQL第8天:MySQL索引优化分析之SQL慢
- oracle+system空间满了,oracle审计导致system表空间爆满的处理方法
- 开源 java CMS - FreeCMS2.4 菜单管理
- [BUUCTF-pwn]——[Black Watch 入群题]PWN
- 计算机网络【4】传输层
- 大数据学习笔记11:搭建完全分布式Hadoop
- java 下面的while语句退出时_java 下面的while语句退出时
- java reduce 分组_使用JAVA8 stream中三个参数的reduce方法对List进行分组统计
- Java中遍历Set集合的三种方法
- A simple brute force problem.
- 【运维工程师主要做哪些工作】运维工程师
- EasyExcel 筛选导出
- HashMap和Iterator迭代器的小用法
- ServU配置网络盘
- matlab循环语句详解
- 特斯拉股价周三开盘上涨近7% 因Q2交付量创纪录缓解了需求担忧
- linux服务器重启原因排查
- Protege使用入门