当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Array转HashSet用法及代码示例


Single Data 结构无法满足程序员的需求,这就是为什么编程语言中有很多内置的 Data-Structures。

数组是大多数编程语言中最常用的 Data-Structure。这个 Data-Structure 的优点是 O(1) 在索引的帮助下访问数组的元素,但最常见的缺点是我们无法在创建后更改数组的大小,并且删除元素是数组中的一个复杂过程。

集合:在 Java 中,表示为单个单元的任何单个对象组称为对象的集合。在 Java 中,JDK 1.2 中定义了一个名为 “Collection Framework” 的单独框架,它包含所有集合类和接口。集合分为两部分,排序集和未排序集机器人各有优缺点。 Sorted Set 即 TreeSet 对其唯一元素进行排序,但 TreeSet 的 time-complexity 为 O(N log N),但未排序的 Set(如 HashSet 和 LinkedSet)确实改变了元素的顺序,但 HashSet 和 LinkedSet 之间的区别在于其元素的随机顺序。

例子:



Input: Array:[1, 2, 3, 4, 5, 6]
Output: Set:[1, 2, 3, 4, 5, 6]
 
Input: Array:[a, b, c, d]
Output: Set:[a, b, c, d]

方法:蛮力或天真的方法

创建一个空集(如果需要未排序的元素,则为HashSet)迭代数组的元素并一个一个添加到集合中。

例:

Java


// Convert array to HashSet in Java
import java.io.*;
import java.util.Iterator;
// Importing Set libraries
import java.util.Set;
import java.util.HashSet;
  
class GFG {
    // Function to convert array to set
    static Set<Integer> convert(int[] array)
    {
        // Hash Set Initialisation
        Set<Integer> Set = new HashSet<>();
  
        // Iteration using enhanced for loop
        for (int element:array) {
            Set.add(element);
        }
        // returning the set
        return Set;
    }
  
    // Function to print the set
    static void print(Set<Integer> Set)
    {
        // Implement to iterator the Set
        Iterator<Integer> _iterator = Set.iterator();
  
        // Iterate the elements of Set
        while (_iterator.hasNext()) {
            // print the element of the Set
            System.out.print(_iterator.next() + " ");
        }
    }
    public static void main(String[] args)
  
    {
  
        // Array taken for consideration
        int array[] = { 1, 2, 3, 4, 5, 6 };
  
        // Calling function to convert the array
        Set<Integer> Set = convert(array);
  
        // print the set
        print(Set);
    }
}
输出
1 2 3 4 5 6

方法二

使用 Java 8 Stream API:HashSet 构造函数可以使用另一个集合对象来构造一个包含指定数组元素的新集合。

  1. 获取要转换的数组。
  2. 将数组转换为 Stream
  3. 使用 Collectors.toSet() 将 Stream 转换为 Set
  4. 使用 collect() 方法收集形成的集合
  5. 返回形成的 Set。

例:

Java


// Convert Array to HashSet in Java
  
import java.util.*;
import java.util.stream.*;
  
class GFG {
  
    // Generic function to convert array to set
    public static <T> Set<T> 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<String> set = convertArrayToSet(array);
  
        // Print the Set
        System.out.println("Set:" + set);
    }
}
输出
Array:[Geeks, forGeeks, A computer Portal]
Set:[A computer Portal, Geeks, forGeeks]




相关用法


注:本文由纯净天空筛选整理自zack_aayush大神的英文原创作品 Convert Array to HashSet in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。