📜  如何在Java中将 HashSet 复制或附加到另一个 HashSet?

📅  最后修改于: 2022-05-13 01:55:44.106000             🧑  作者: Mango

如何在Java中将 HashSet 复制或附加到另一个 HashSet?

HashSet用于在Java中存储不同的值。 HashSet 以随机顺序存储元素,因此无法保证元素的顺序。 HashSet类实现了Set 接口,由一个哈希表支持它实际上是一个HashMap实例。

我们可以将一个 HashSet 复制或附加到另一个 HashSet。有几种方法可以在Java中复制 HashSet 或将 HashSet 附加到另一个 HashSet :

  • 使用 HashSet 构造函数
  • 使用 clone() 方法
  • 使用 addAll() 方法

方法一:使用HashSet构造函数

使用构造函数,我们可以将原始 HashSet 复制到另一个 HashSet,绕过原始 HashSet 到构造函数。

// passing the original HashSet to the constructor

HashSet copySet = new HashSet<>(originalSet)

代码:

Java
// Java program to copy a HashSet to
// another HashSet using the constructor
  
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // New HashSet
        HashSet set = new HashSet<>();
  
        // Add elements to original set
        set.add(10);
        set.add(20);
        set.add(30);
        set.add(10);
        set.add(50);
        set.add(20);
  
        // Make a new HashSet and copy all elements of
        // original HashSet using constructor
        HashSet copyOfSet = new HashSet<>(set);
  
        // Print original HashSet
        System.out.println("Original HashSet: " + set);
  
        // Print Copy HashSet
        System.out.println("Copy HashSet: " + copyOfSet);
    }
}


Java
// Java program to copy a HashSet to 
// another HashSet using clone method in Java
  
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // New empty HashSet
        HashSet set = new HashSet<>();
  
        // Add elements to set
        set.add(10);
        set.add(20);
        set.add(30);
        set.add(10);
        set.add(50);
        set.add(20);
  
        // Create a new HashSet to copy the original HashSet
        HashSet copyOfSet = new HashSet();
  
        // Copy HashSet using clone method
        copyOfSet = (HashSet)set.clone();
  
        // Print original HashSet
        System.out.println("Original HashSet: " + set);
  
        // Print Copy HashSet
        System.out.println("Copy HashSet: " + copyOfSet);
    }
}


Java
// Java program to copy a HashSet to 
// another HashSet using addAll method in Java 
  
import java.util.*;
  
public class GFG {
  public static void main(String[] args) {
      
    // New empty HashSet
    HashSet set = new HashSet<>();
  
    // Add elements to set
    set.add(10);
    set.add(20);
    set.add(30);
    set.add(10);
    set.add(50);
    set.add(20);
  
    // Create a new HashSet to copy the original HashSet
    HashSet copyOfSet = new HashSet<>();
  
    // Copy HashSet using addAll method
    copyOfSet.addAll(set);
  
    // Print original HashSet 
    System.out.println("Original HashSet: " + set);
  
    // Print Copy HashSet
    System.out.println("Copy HashSet: " + copyOfSet);
  
  }
}


Java
// Java program to copy a HashSet to another 
// HashSet using addAll method in Java
  
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // New empty HashSet
        HashSet set = new HashSet<>();
  
        // Add elements to set
        set.add(10);
        set.add(20);
        set.add(30);
        set.add(10);
        set.add(50);
        set.add(20);
  
        // Create a new HashSet to append a HashSet
        HashSet appendedSet = new HashSet<>();
  
        // Add elements to appendedSet
        appendedSet.add(100);
        appendedSet.add(200);
  
        System.out.println("Before appending :");
  
        // Print original HashSet
        System.out.println("Original HashSet: " + set);
  
        // Print appendedSet before append
        System.out.println("Appended HashSet: "
                           + appendedSet);
  
        // Add all elements of set HashSet to appendedSet
        // using addAll method
        appendedSet.addAll(set);
  
        System.out.println("After appending");
  
        // Print appendedSet after append
        System.out.println("Appended HashSet: "
                           + appendedSet);
    }
}


输出
Original HashSet: [50, 20, 10, 30]
Copy HashSet: [50, 20, 10, 30]

方法二:使用克隆方法

使用 clone 方法,我们可以将原始 HashSet 的所有元素复制到Java中的另一个 HashSet 中。

注意:元素的顺序可能相同也可能不同。所以不能保证顺序。

代码:

Java

// Java program to copy a HashSet to 
// another HashSet using clone method in Java
  
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // New empty HashSet
        HashSet set = new HashSet<>();
  
        // Add elements to set
        set.add(10);
        set.add(20);
        set.add(30);
        set.add(10);
        set.add(50);
        set.add(20);
  
        // Create a new HashSet to copy the original HashSet
        HashSet copyOfSet = new HashSet();
  
        // Copy HashSet using clone method
        copyOfSet = (HashSet)set.clone();
  
        // Print original HashSet
        System.out.println("Original HashSet: " + set);
  
        // Print Copy HashSet
        System.out.println("Copy HashSet: " + copyOfSet);
    }
}
输出
Original HashSet: [50, 20, 10, 30]
Copy HashSet: [50, 10, 20, 30]

方法三:使用addAll方法

我们可以使用 addAll() 方法来复制或附加一个 HashSet 到另一个 HashSet。 Java中的 addAll 方法将所有元素添加到 HashSet。

注意:元素的顺序可能相同也可能不同。所以不能保证顺序。

代码:

Java

// Java program to copy a HashSet to 
// another HashSet using addAll method in Java 
  
import java.util.*;
  
public class GFG {
  public static void main(String[] args) {
      
    // New empty HashSet
    HashSet set = new HashSet<>();
  
    // Add elements to set
    set.add(10);
    set.add(20);
    set.add(30);
    set.add(10);
    set.add(50);
    set.add(20);
  
    // Create a new HashSet to copy the original HashSet
    HashSet copyOfSet = new HashSet<>();
  
    // Copy HashSet using addAll method
    copyOfSet.addAll(set);
  
    // Print original HashSet 
    System.out.println("Original HashSet: " + set);
  
    // Print Copy HashSet
    System.out.println("Copy HashSet: " + copyOfSet);
  
  }
}
输出
Original HashSet: [50, 20, 10, 30]
Copy HashSet: [50, 20, 10, 30]

在已经存在的 HashSet 中使用 addAll 方法追加:

代码:

Java

// Java program to copy a HashSet to another 
// HashSet using addAll method in Java
  
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // New empty HashSet
        HashSet set = new HashSet<>();
  
        // Add elements to set
        set.add(10);
        set.add(20);
        set.add(30);
        set.add(10);
        set.add(50);
        set.add(20);
  
        // Create a new HashSet to append a HashSet
        HashSet appendedSet = new HashSet<>();
  
        // Add elements to appendedSet
        appendedSet.add(100);
        appendedSet.add(200);
  
        System.out.println("Before appending :");
  
        // Print original HashSet
        System.out.println("Original HashSet: " + set);
  
        // Print appendedSet before append
        System.out.println("Appended HashSet: "
                           + appendedSet);
  
        // Add all elements of set HashSet to appendedSet
        // using addAll method
        appendedSet.addAll(set);
  
        System.out.println("After appending");
  
        // Print appendedSet after append
        System.out.println("Appended HashSet: "
                           + appendedSet);
    }
}
输出
Before appending :
Original HashSet: [50, 20, 10, 30]
Appended HashSet: [100, 200]
After appending
Appended HashSet: [50, 100, 20, 200, 10, 30]