當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。