Array 是一組由通用名稱引用的like-typed 變量。數組可以包含基元數據類型以及類的對象,具體取決於數組的定義。對於基元數據類型,實際值存儲在連續的內存位置中。對於類的對象,實際對象存儲在堆段中。 Set in Java 是 java.util 包的一部分,並擴展了 java.util.Collection 接口。它不允許使用重複元素,並且最多隻能容納一個空元素。 Java Set接口的幾個重要特性如下:
- set 接口是對象的無序集合,其中不能存儲重複值。
- Java Set 不提供對元素插入或刪除位置的控製。
- 本質上,Set 是通過 HashSet、LinkedHashSet 或 TreeSet(排序表示)實現的。
- Set 有各種添加、刪除、清除、大小等方法來增強該接口的使用。
例子:
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的方法:
方法 1:暴力或樸素方法:在此方法中,創建一個空 Set,並將 Array 中存在的所有元素一一添加到其中。
算法:
- 獲取要轉換的數組。
- 創建一個空集
- 遍曆數組中的項目。
- 對於每個項目,將其添加到集合中
- 返回形成的Set
例子:
Java
// 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 <T> Set<T> convertArrayToSet(T array[])
{
// Create an empty Set
Set<T> 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<String> set = convertArrayToSet(array);
// Print the Set
System.out.println("Set: " + set);
}
}
Array: [Geeks, forGeeks, A Computer Portal] Set: [A Computer Portal, Geeks, forGeeks]
方式二:使用Arrays.asList()方法:在該方法中,借助Arrays.asList()方法將Array作為參數以Array的形式傳遞到Set構造函數中。
算法:
- 獲取要轉換的數組。
- 借助 Arrays.asList() 方法,通過將數組作為 Set 構造函數中的參數傳遞來創建 Set
- 返回形成的Set
示例
Java
// 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 <T> Set<T> convertArrayToSet(T array[])
{
// Create the Set by passing the Array
// as parameter in the constructor
Set<T> 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<String> set = convertArrayToSet(array);
// Print the Set
System.out.println("Set: " + set);
}
}
Array: [Geeks, forGeeks, A computer Portal] Set: [A computer Portal, Geeks, forGeeks]
方式3:使用Collections。addAll():由於Set是Java中Collection包的一部分。因此,可以借助 Collections.addAll() 方法將 Array 轉換為 Set。
算法:
- 獲取要轉換的數組。
- 創建一個空集。
- 通過將數組作為參數傳遞給 Collections.addAll() 方法,將數組添加到 Set 中。
- 返回形成的Set
Java
// 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 <T> Set<T> convertArrayToSet(T array[])
{
// Create the Set by passing the Array
// as parameter in the constructor
Set<T> 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<String> 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構造函數可以采用另一個集合對象來構造一個包含指定數組元素的新集合。算法:
- 獲取要轉換的數組。
- 將數組轉換為流
- 使用 Collectors 將 Stream 轉換為 Set。toSet()
- 使用collect()方法收集形成的集合
- 返回形成的Set
Java
// 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 <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]
方式5:使用Guava Sets.newHashSet():Sets.newHashSet()創建一個包含指定數組元素的可變HashSet實例。算法:
- 獲取要轉換的數組。
- 創建一個空集。
- 通過將數組作為參數傳遞給 Sets.newHashSet() 方法,將數組添加到 Set 中。
- 返回形成的Set。
Java
// 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 <T> Set<T> 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<String>
set = convertArrayToSet(array);
// Print the Set
System.out.println("Set: " + set);
}
}
輸出:
Array: [Geeks, forGeeks, A computer Portal] Set: [Geeks, forGeeks, A computer Portal]
方式6:使用Set.of()方法:要使用該方法,我們必須導入包java.util。它是在java 9中引入的。這是一個靜態工廠方法,用於返回set對象。此方法將返回不可變集實例,但我們可以通過在 HashSet 的構造函數中提供它來使其成為可變集。首先,輸入數組元素並聲明集合對象。調用轉換數組的方法來設置。現在,將數組作為參數傳遞並返回語句 new Hashset<>(Set.of(arrayname))。
Java
import java.util.*;
class GFG {
public static <T> Set<T> convertArrayToSet(T array[])
{
// create a set from the array
return new HashSet<>(Set.of(array));
}
public static void main(String args[])
{
// create an Array
String array[] = { "geeks", "forgeeks",
"learning","platform" };
// printing the Array
System.out.println("Array: " + Arrays.toString(array));
// declare the set object and call the function for conversion
Set<String>
set = convertArrayToSet(array);
// print the Set
System.out.println("Set: " + set);
}
}
Array: [geeks, forgeeks, learning, platform] Set: [geeks, forgeeks, learning, platform]
相關用法
- Java Array轉String用法及代碼示例
- Java Array轉LinkedList用法及代碼示例
- Java Array轉Vector用法及代碼示例
- Java Array轉HashSet用法及代碼示例
- Java Array轉LinkedHashSet用法及代碼示例
- Java Array轉Collection用法及代碼示例
- Java Array轉List用法及代碼示例
- Java ArrayList add()用法及代碼示例
- Java ArrayList addAll()用法及代碼示例
- Java ArrayList clear()用法及代碼示例
- Java ArrayList clone()用法及代碼示例
- Java ArrayList contains()用法及代碼示例
- Java ArrayList get()用法及代碼示例
- Java ArrayList indexOf()用法及代碼示例
- Java ArrayList removeAll()用法及代碼示例
- Java ArrayList remove()用法及代碼示例
- Java ArrayList size()用法及代碼示例
- Java ArrayList isEmpty()用法及代碼示例
- Java ArrayList subList()用法及代碼示例
- Java ArrayList set()用法及代碼示例
- Java ArrayList sort()用法及代碼示例
- Java ArrayList toArray()用法及代碼示例
- Java ArrayList toString()用法及代碼示例
- Java ArrayList ensureCapacity()用法及代碼示例
- Java ArrayList lastIndexOf()用法及代碼示例
注:本文由純淨天空篩選整理自RishabhPrabhu大神的英文原創作品 Program to convert Array to Set in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。