📌  相关文章
📜  Java中将Array转换为Set的程序

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

Java中将Array转换为Set的程序

数组是一组由通用名称引用的类似类型的变量。数组可以包含原始数据类型以及类的对象,具体取决于数组的定义。在原始数据类型的情况下,实际值存储在连续的内存位置。对于类的对象,实际对象存储在堆段中。

Java中的 Set 是Java.util 包的一部分,并扩展了Java.util.Collection 接口。它不允许使用重复元素,并且最多只能容纳一个空元素。 Java Set 接口的几个重要特性如下:

  • set 接口是对象的无序集合,其中不能存储重复值。
  • Java Set 不提供对元素插入或删除位置的控制。
  • 基本上,Set 是由 HashSet、LinkedHashSet 或 TreeSet(排序表示)实现的。
  • Set 有多种方法来添加、删除 clear、size 等,以增强该接口的使用。

例子:

以下是在Java中将 Array 转换为 Set 的方法:

  1. Brute Force 或 Naive Method :在此方法中,创建一个空 Set,并将 Array 中存在的所有元素一一添加到其中。

    算法

    1. 获取要转换的数组。
    2. 创建一个空集
    3. 遍历 Array 中的项目。
    4. 对于每个项目,将其添加到 Set
    5. 返回形成的 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]
    
  2. 使用 Arrays.asList() 方法:在此方法中,Array 在 Arrays.asList() 方法的帮助下以 Array 的形式作为参数传递给 Set 构造函数。

    算法

    1. 获取要转换的数组。
    2. 在 Arrays.asList() 方法的帮助下,通过在 Set 的构造函数中将 Array 作为参数传递来创建 Set
    3. 返回形成的 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]
    
  3. 使用 Collections.addAll() :因为 Set 是Java中 Collection 包的一部分。因此,可以借助 Collections.addAll() 方法将 Array 转换为 Set。

    算法

    1. 获取要转换的数组。
    2. 创建一个空集。
    3. 通过将数组作为参数传递给 Collections.addAll() 方法,将数组添加到 Set 中。
    4. 返回形成的 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]
    
  4. 使用Java 8 Stream API :HashSet 构造函数可以采用另一个集合对象来构造一个包含指定数组元素的新集合。

    算法

    1. 获取要转换的数组。
    2. 将数组转换为 Stream
    3. 使用 Collectors.toSet() 将 Stream 转换为 Set
    4. 使用 collect() 方法收集形成的集合
    5. 返回形成的 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]
    
  5. 使用 Guava Sets.newHashSet() : Sets.newHashSet() 创建一个可变的 HashSet 实例,其中包含指定数组的元素。

    算法

    1. 获取要转换的数组。
    2. 创建一个空集。
    3. 通过将数组作为参数传递给 Sets.newHashSet() 方法,将数组添加到 Set 中。
    4. 返回形成的 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]