在Java中遍历 LinkedHashSet 的元素
LinkedHashSet是HashSet的有序版本,它在所有元素之间维护一个双向链表。当需要维护迭代顺序时,使用这个类。
例子:
Input:
["Geeks", "for", "Geeks"]
Output:
Geeks
for
Geeks
Input:
[9, 4, 6, 2, 8]
Output:
9
4
6
2
8
迭代 LinkedHashSet 元素的不同方法:
- 使用 for-each 循环
- 使用迭代器
- 使用 JDK 1.8 流
方法 1:使用 for-each 循环
Java
// Java Program to Iterate through linkedHashset
// Using the for-each loop
import java.io.*;
import java.util.LinkedHashSet;
class GFG {
public static void main(String[] args)
{
LinkedHashSet gfg
= new LinkedHashSet();
// Adding element to LinkedHashSet
gfg.add("Geeks");
gfg.add("for");
gfg.add("geeks");
// iterating LinkedHashSet using enhanced for loop
for (String itr : gfg) {
System.out.println(itr);
}
}
}
Java
// Java code to demonstrate
// the iterating over LinkedHashSet
// Using iterators
import java.io.*;
import java.util.*;
class IteratingLinkedHashSet {
public static void main(String[] args)
{
// Instantiate an object of Set
// Since LinkedHashSet implements Set
// Set points to LinkedHashSet
Set gfg = new LinkedHashSet();
// Elements are added using add() method
gfg.add("Geek");
gfg.add("For");
gfg.add("Geeks");
gfg.add("Courses");
gfg.add("Interview Prep");
gfg.add("Doubt Classes");
// Iterating through the LinkedHashSet
Iterator itr = gfg.iterator();
while (itr.hasNext()){
System.out.println( itr.next() );
}
}
}
Java
// Java code to demonstrate
// the iterating over LinkedHashSet
// Using JDK 1.8 streams
import java.io.*;
import java.util.*;
class GFG {
public static void main(String[] args)
{
LinkedHashSet gfg = new LinkedHashSet();
// Elements are added using add() method
gfg.add(9);
gfg.add(7);
gfg.add(11);
gfg.add(43);
gfg.add(2);
// Using forEach Method using Stream.
gfg.stream().forEach(System.out::println);
}
}
输出
Geeks
for
geeks
方法二:使用迭代器
使用 LinkedHashSet 的元素迭代 迭代器方法。我们将使用hasNext()方法和next()方法以及 while 循环来遍历 LinkedHashSet 元素。
类型参数:
- E – 此集合维护的元素类型。
句法:
public Iterator iterator()
返回:此方法以与输入相同的顺序返回 LinkedHashSet 的元素。
Java
// Java code to demonstrate
// the iterating over LinkedHashSet
// Using iterators
import java.io.*;
import java.util.*;
class IteratingLinkedHashSet {
public static void main(String[] args)
{
// Instantiate an object of Set
// Since LinkedHashSet implements Set
// Set points to LinkedHashSet
Set gfg = new LinkedHashSet();
// Elements are added using add() method
gfg.add("Geek");
gfg.add("For");
gfg.add("Geeks");
gfg.add("Courses");
gfg.add("Interview Prep");
gfg.add("Doubt Classes");
// Iterating through the LinkedHashSet
Iterator itr = gfg.iterator();
while (itr.hasNext()){
System.out.println( itr.next() );
}
}
}
输出
Geek
For
Geeks
Courses
Interview Prep
Doubt Classes
方法 3:使用 JDK 1.8流
使用 LinkedHashSet 的元素迭代 forEach 方法。 我们将使用Stream 遍历整个内容。流表示来自源的一系列对象,它支持聚合操作。
句法:
set.stream().forEach()
返回:返回一个将集合作为源的顺序流。
Java
// Java code to demonstrate
// the iterating over LinkedHashSet
// Using JDK 1.8 streams
import java.io.*;
import java.util.*;
class GFG {
public static void main(String[] args)
{
LinkedHashSet gfg = new LinkedHashSet();
// Elements are added using add() method
gfg.add(9);
gfg.add(7);
gfg.add(11);
gfg.add(43);
gfg.add(2);
// Using forEach Method using Stream.
gfg.stream().forEach(System.out::println);
}
}
输出
9
7
11
43
2
时间复杂度: O(N),其中 N 为否。 LinkedHashSet 的元素。