數組是存儲在連續內存位置的項目的集合。數組可以包含原始數據類型以及類的對象,具體取決於數組的定義。而 LinkedHashSet 僅包含唯一元素,並且它們的存儲順序與插入它們的順序相同。
例子:
Input:arr = {"A", "B", "C", "D", "A"} Output:LinkedHashSet = {"A", "B", "C", "D"} LinkedHashSet does not contain repeated elements. Input:arr = {1, 3, 5, 3, 1} Output: LinkedHashset = {1, 3, 5}
有幾種方法可以將數組轉換為 Java 中的 LinkedHashSet 的對象,如下所示:
1. 使用Java Arrays asList()用法及代碼示例方法和 LinkedHashSet 構造函數
- LinkedHashSet 類提供了一個接受集合對象的構造函數。
- 但是要使用它,我們需要使用 Arrays 類的 asList 方法將數組轉換為 List。
Java
// Java program to convert an array to LinkedHashSet
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
public class ArrayToLinkedHashSet {
public static void main(String[] args)
{
// array of string
String[] names
= { "John", "Devid", "Smith", "Joe", "Stark" };
// First convert the name array to List and then
// use the LinkedHashSet constructor to convert
// array to linkedhasset
Set<String> linkedhasset_name
= new LinkedHashSet<String>(Arrays.asList(names));
System.out.println(
"LinkedHashSet contains element:" + linkedhasset_name);
}
}
輸出
LinkedHashSet contains element:[John, Devid, Smith, Joe, Stark]
2. 使用 asList 方法和Java Java.util.ArrayList.addall()用法及代碼示例方法
- 和之前的做法類似,我們先將數組轉換成List
- 但這次我們將使用 addAll 方法將數組中的元素添加到鏈接哈希集中,而不是使用構造函數。
Java
// Java program to convert an array to LinkedHashSet
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
public class ArrayToLinkedHashSet {
public static void main(String[] args) {
String[] names = {"John", "Devid", "Smith", "Joe", "Stark"};
//create new empty LinkedHashSet object to store array element
Set<String> linkhasset_name = new LinkedHashSet<String>();
//add all elements of list to LinkedHashSet
linkhasset_name.addAll( Arrays.asList(names) );
System.out.println("LinkedHashSet contains:" + linkhasset_name);
}
}
輸出
LinkedHashSet contains:[John, Devid, Smith, Joe, Stark]
3. 使用 Java 8 Stream API:
- 與 HashSet 類似,您也可以使用 Collectors 類的 toCollection() 方法將 Stream 轉換為 LinkedHashSet。
- 首先,將數組轉換為流,然後使用僅適用於 java 8 版本的集合流將流轉換為 LinkedHashSet。
collect( Collectors.toCollection( LinkedHashSet::new ) );
Java
// Java program to convert an array to LinkedHashSet
import java.io.*;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.*;
import java.util.stream.*;
import java.util.Set;
public class ArrayToLinkedHashSet {
public static void main(String[] args) {
String[] names = {"John", "Devid", "Smith", "Joe", "Stark"};
//create new empty LinkedHashSet object
Set<String> linkhasset_name = new LinkedHashSet<String>();
//add all elements of list to LinkedHashSet
linkhasset_name = Arrays.stream(names).collect( Collectors.toCollection( LinkedHashSet::new ) );
System.out.println("LinkedHashSet contains:" + linkhasset_name);
}
}
輸出
LinkedHashSet contains:[John, Devid, Smith, Joe, Stark]
4.使用循環或蠻力
- 我們可以使用 for 循環遍曆數組的所有元素,並將元素一一添加到 LinkedHashSet 對象,如下所示。
Java
// Java program to convert an array to LinkedHashSet
import java.io.*;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.*;
import java.util.Set;
public class ArrayToLinkedHashSet {
public static void main(String[] args) {
String[] names = {"John", "Devid", "Smith", "Joe", "Stark"};
//create new empty LinkedHashSet object
Set<String> linkhasset_name = new LinkedHashSet<String>();
//iterate an array and add elements one by one to the linkedhasset
for(String name:names){
linkhasset_name.add(name);
}
System.out.println("LinkedHashSet contains:" + linkhasset_name);
}
}
輸出
LinkedHashSet contains:[John, Devid, Smith, Joe, Stark]
相關用法
- Java ArrayList轉LinkedHashSet用法及代碼示例
- Java LinkedList和LinkedHashSet的區別用法及代碼示例
- Java LinkedHashSet clear()用法及代碼示例
- Java LinkedHashSet removeAll()用法及代碼示例
- Java LinkedHashSet toArray(T[])用法及代碼示例
- Java LinkedHashSet toArray()用法及代碼示例
- Java LinkedHashSet equals()用法及代碼示例
- Java LinkedHashSet retainAll()用法及代碼示例
- Java LinkedHashSet toString()用法及代碼示例
- Java LinkedHashSet containsAll()用法及代碼示例
- Java LinkedHashSet hashCode()用法及代碼示例
- Java LinkedHashSet add()用法及代碼示例
- Java LinkedHashSet contains()用法及代碼示例
- Java LinkedHashSet remove()用法及代碼示例
- Java LinkedHashSet size()用法及代碼示例
- Java LinkedHashSet isEmpty()用法及代碼示例
注:本文由純淨天空篩選整理自patelnagendra1大神的英文原創作品 How to Convert an Array to LinkedHashSet in Java?。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。