Java 集合框架HashSet
原文:https://www.studytonight.com/java/hashset-in-collection-framework.php
Java HashSet 类用于存储唯一的元素。它在内部使用HashMap
来存储元素。它实现了集合接口并扩展了抽象集合类。的声明如下。
Java HashSet 类声明
public class HashSet<E>extends AbstractSet<E>implements Set<E>, Cloneable, Serializable
要点:
- 它创建一个使用
HashMap
进行存储的集合。HashMap
通过使用一种称为哈希的机制来存储信息。 - HashSet 不维护元素的任何顺序。
- HashSet 只包含唯一的元素。
- 它允许存储空值。
- 它是非同步的。
- 这是搜索操作的最佳方法。
- HashSet 的初始默认容量是 16。
HashSet 构造器
HashSet 类有三个构造器,可以用来相应地创建 HashSet。
HashSet() //This creates an empty HashSet
HashSet( Collection C ) //This creates a HashSet that is initialized with the elements of the Collection C
HashSet( int capacity ) //This creates a HashSet that has the specified initial capacity
HashSet 类的示例
在这个例子中,我们创建了一个初始为空的 HashSet。稍后,我们将向该集合添加项目。
import java.util.*;
class Demo
{
public static void main(String args[])
{
// Creating HashSet
HashSet<String> hs = new HashSet<String>();
// Displaying HashSet
System.out.println(hs);
}
}
[]
HashSet 方法
| 方法 | 描述 | | 添加(英、法) | 如果指定的元素不存在,它会将该元素添加到该集合中。 | | 清除() | 它从集合中移除所有元素。 | | 克隆() | 它返回这个 HashSet 实例的一个浅拷贝:元素本身没有被克隆。 | | 包含(对象 o) | 如果该集合包含指定的元素,则返回 true。 | | isEmpty() | 如果该集合不包含任何元素,则返回 true。 | | 迭代器() | 它返回这个集合中元素的迭代器。 | | 移除(对象 o) | 如果存在指定的元素,它将从该集中移除该元素。 | | 大小() | 它返回集合中元素的数量。 | | 拆分器() | 它在集合中的元素上创建一个后期绑定和故障快速拆分器。 |
向HashSet
中添加元素
在这个例子中,我们创建了一个存储字符串值的 HashSet。由于 HashSet 不存储重复的元素,我们尝试添加一个重复的元素,但是输出只包含唯一的元素。
import java.util.*;
class Demo
{
public static void main(String args[])
{
// Creating HashSet
HashSet<String> hs = new HashSet<String>();
// Adding elements
hs.add("Mohan");
hs.add("Rohan");
hs.add("Sohan");
hs.add("Mohan");
// Displaying HashSet
System.out.println(hs);
}
}
[莫罕、索翰、罗翰]
从HashSet
中移除元素
为了从 hashset 中移除元素,我们使用 remove()方法移除指定的元素。
import java.util.*;
class Demo
{
public static void main(String args[])
{
// Creating HashSet
HashSet<String> hs = new HashSet<String>();
// Adding elements
hs.add("Mohan");
hs.add("Rohan");
hs.add("Sohan");
hs.add("Mohan");
// Displaying HashSet
System.out.println(hs);
// Removing elements
hs.remove("Mohan");
System.out.println("After removing elements: \n"+hs);
}
}
[莫汉、索汉、罗汉]移除元素后:[索汉、罗汉]
遍历HashSet
的元素
因为 HashSet 是一个集合,所以我们可以使用循环来迭代它的元素。在这个例子中,我们使用 for 循环遍历元素。见下面的例子。
import java.util.*;
class Demo
{
public static void main(String args[])
{
// Creating HashSet
HashSet<String> hs = new HashSet<String>();
// Adding elements
hs.add("Mohan");
hs.add("Rohan");
hs.add("Sohan");
hs.add("Mohan");
// Traversing ArrayList
for(String element : hs) {
System.out.println(element);
}
}
}
莫罕·罗翰
获取HashSet
的大小
有时我们想知道一个 HashSet 包含的元素数量。在这种情况下,我们使用 size()然后返回 HashSet 的大小,它等于列表中存在的元素数量。
import java.util.*;
class Demo
{
public static void main(String args[])
{
// Creating HashSet
HashSet<String> hs = new HashSet<String>();
// Adding elements
hs.add("Mohan");
hs.add("Rohan");
hs.add("Sohan");
hs.add("Mohan");
// Traversing ArrayList
for(String element : hs) {
System.out.println(element);
}
System.out.println("Total elements : "+hs.size());
}
}
莫汉索汉罗汉总元素:3