如何在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]