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

要点:

  1. 它创建一个使用HashMap进行存储的集合。HashMap通过使用一种称为哈希的机制来存储信息。
  2. HashSet 不维护元素的任何顺序。
  3. HashSet 只包含唯一的元素。
  4. 它允许存储空值。
  5. 它是非同步的。
  6. 这是搜索操作的最佳方法。
  7. 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