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 HashSet hashCode()用法及代码示例
- Java HashSet containsAll()用法及代码示例
注:本文由纯净天空筛选整理自zack_aayush大神的英文原创作品 Convert Array to HashSet in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。