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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。