Java中将Array转换为Set的程序
数组是一组由通用名称引用的类似类型的变量。数组可以包含原始数据类型以及类的对象,具体取决于数组的定义。在原始数据类型的情况下,实际值存储在连续的内存位置。对于类的对象,实际对象存储在堆段中。
Java中的 Set 是Java.util 包的一部分,并扩展了Java.util.Collection 接口。它不允许使用重复元素,并且最多只能容纳一个空元素。 Java Set 接口的几个重要特性如下:
- set 接口是对象的无序集合,其中不能存储重复值。
- Java Set 不提供对元素插入或删除位置的控制。
- 基本上,Set 是由 HashSet、LinkedHashSet 或 TreeSet(排序表示)实现的。
- Set 有多种方法来添加、删除 clear、size 等,以增强该接口的使用。
例子:
Input: Array: [Geeks, forGeeks, A computer Portal]
Output: Set: [Geeks, forGeeks, A computer Portal]
Input: Array: [1, 2, 3, 4, 5]
Output: Set: [1, 2, 3, 4, 5]
以下是在Java中将 Array 转换为 Set 的方法:
- Brute Force 或 Naive Method :在此方法中,创建一个空 Set,并将 Array 中存在的所有元素一一添加到其中。
算法:
- 获取要转换的数组。
- 创建一个空集
- 遍历 Array 中的项目。
- 对于每个项目,将其添加到 Set
- 返回形成的 Set
程序:
// Java Program to convert // Array to Set import java.util.*; import java.util.stream.*; class GFG { // Generic function to convert an Array to Set public static
Set convertArrayToSet(T array[]) { // Create an empty Set Set set = new HashSet<>(); // Iterate through the array for (T t : array) { // Add each element into the set set.add(t); } // Return the converted Set return set; } public static void main(String args[]) { // Create an Array String array[] = { "Geeks", "forGeeks", "A Computer Portal" }; // Print the Array System.out.println("Array: " + Arrays.toString(array)); // convert the Array to Set Set set = convertArrayToSet(array); // Print the Set System.out.println("Set: " + set); } } 输出:Array: [Geeks, forGeeks, A computer Portal] Set: [Geeks, forGeeks, A computer Portal]
- 使用 Arrays.asList() 方法:在此方法中,Array 在 Arrays.asList() 方法的帮助下以 Array 的形式作为参数传递给 Set 构造函数。
算法:
- 获取要转换的数组。
- 在 Arrays.asList() 方法的帮助下,通过在 Set 的构造函数中将 Array 作为参数传递来创建 Set
- 返回形成的 Set
程序:
// Java Program to convert // Array to Set import java.util.*; import java.util.stream.*; class GFG { // Generic function to convert an Array to Set public static
Set convertArrayToSet(T array[]) { // Create the Set by passing the Array // as parameter in the constructor Set set = new HashSet<>(Arrays.asList(array)); // Return the converted Set return set; } public static void main(String args[]) { // Create an Array String array[] = { "Geeks", "forGeeks", "A computer Portal" }; // Print the Array System.out.println("Array: " + Arrays.toString(array)); // convert the Array to Set Set set = convertArrayToSet(array); // Print the Set System.out.println("Set: " + set); } } 输出:Array: [Geeks, forGeeks, A computer Portal] Set: [Geeks, forGeeks, A computer Portal]
- 使用 Collections.addAll() :因为 Set 是Java中 Collection 包的一部分。因此,可以借助 Collections.addAll() 方法将 Array 转换为 Set。
算法:
- 获取要转换的数组。
- 创建一个空集。
- 通过将数组作为参数传递给 Collections.addAll() 方法,将数组添加到 Set 中。
- 返回形成的 Set
程序:
// Java Program to convert // Array to Set import java.util.*; import java.util.stream.*; class GFG { // Generic function to convert an Array to Set public static
Set convertArrayToSet(T array[]) { // Create the Set by passing the Array // as parameter in the constructor Set set = new HashSet<>(); // Add the array to set Collections.addAll(set, Arrays.toString(array)); // Return the converted Set return set; } public static void main(String args[]) { // Create an Array String array[] = { "Geeks", "forGeeks", "A computer Portal" }; // Print the Array System.out.println("Array: " + array); // convert the Array to Set Set set = convertArrayToSet(array); // Print the Set System.out.println("Set: " + set); } } 输出:Array: [Geeks, forGeeks, A computer Portal] Set: [Geeks, forGeeks, A computer Portal]
- 使用Java 8 Stream API :HashSet 构造函数可以采用另一个集合对象来构造一个包含指定数组元素的新集合。
算法:
- 获取要转换的数组。
- 将数组转换为 Stream
- 使用 Collectors.toSet() 将 Stream 转换为 Set
- 使用 collect() 方法收集形成的集合
- 返回形成的 Set
程序:
// Java Program to convert // Array to Set in Java 8 import java.util.*; import java.util.stream.*; class GFG { // Generic function to convert array to set public static
Set convertArrayToSet(T array[]) { // create a set from the Array return Arrays .stream(array) .collect(Collectors.toSet()); } public static void main(String args[]) { // Create an Array String array[] = { "Geeks", "forGeeks", "A computer Portal" }; // Print the Array System.out.println("Array: " + Arrays.toString(array)); // convert the Array to Set Set set = convertArrayToSet(array); // Print the Set System.out.println("Set: " + set); } } 输出:
Array: [Geeks, forGeeks, A computer Portal] Set: [Geeks, forGeeks, A computer Portal]
- 使用 Guava Sets.newHashSet() : Sets.newHashSet() 创建一个可变的 HashSet 实例,其中包含指定数组的元素。
算法:
- 获取要转换的数组。
- 创建一个空集。
- 通过将数组作为参数传递给 Sets.newHashSet() 方法,将数组添加到 Set 中。
- 返回形成的 Set
// Java Program to convert // Array to Set in Java 8 import static com.google.common.collect.Sets.*; import java.util.*; import java.util.stream.*; class GFG { // Generic function to convert array to set public static
Set convertArrayToSet(T array[]) { // create a set from the Array return Sets.newHashSet(array); } public static void main(String args[]) { // Create an Array String array[] = { "Geeks", "forGeeks", "A computer Portal" }; // Print the Array System.out.println("Array: " + Arrays.toString(array)); // convert the Array to Set Set set = convertArrayToSet(array); // Print the Set System.out.println("Set: " + set); } } 输出:
Array: [Geeks, forGeeks, A computer Portal] Set: [Geeks, forGeeks, A computer Portal]