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 構造函數可以使用另一個集合對象來構造一個包含指定數組元素的新集合。
- 獲取要轉換的數組。
- 將數組轉換為 Stream
- 使用 Collectors.toSet() 將 Stream 轉換為 Set
- 使用 collect() 方法收集形成的集合
- 返回形成的 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]
相關用法
- Java HashSet轉array用法及代碼示例
- Java HashSet轉ArrayList用法及代碼示例
- Java HashSet轉TreeSet用法及代碼示例
- Java List轉HashSet用法及代碼示例
- Java ArrayList轉HashSet用法及代碼示例
- Java HashSet contains()用法及代碼示例
- Java HashSet clear()用法及代碼示例
- Java HashSet isEmpty()用法及代碼示例
- Java HashSet iterator()用法及代碼示例
- Java HashSet remove()用法及代碼示例
- Java HashSet size()用法及代碼示例
- Java HashSet add()用法及代碼示例
- Java HashSet clone()用法及代碼示例
- Java HashSet spliterator()用法及代碼示例
- Java ArrayList和HashSet的區別用法及代碼示例
- Java HashSet hashCode()用法及代碼示例
- Java HashSet containsAll()用法及代碼示例
注:本文由純淨天空篩選整理自zack_aayush大神的英文原創作品 Convert Array to HashSet in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。