如何在Java中迭代 HashSet?
HashSet扩展了AbstractSet并实现了Set接口。它创建了一个使用哈希表进行存储的集合。它使用一种称为散列的机制来存储信息。在散列中,键的信息内容用于确定唯一值,称为其散列码。
迭代 HashSet 有三种简单的方法,如下所示:
- 使用迭代器
- 不使用迭代器(使用 for 循环)
- 使用 for-each 循环
方法一:迭代器方法
在这个方法中,我们在迭代器的帮助下迭代 HashSet。首先,我们在Java中的iterator()方法的帮助下创建了一个迭代器来迭代 HashSet。
// Create a iterator of integer type to iterate HashSet
Iterator it = set.iterator();
然后在Java中的hasNext()和Next()方法的帮助下迭代 HashSet 。其中hasNext()方法检查 HashSet 是否有元素, Next()方法访问 HashSet 的数据。
注意:在 hasNext() 之后只使用一次 Next() 方法。
例子:
Java
// Java program to iterate the HashSet
// using iterator
import java.util.*;
class GFG {
public static void main(String[] args)
{
// Creating a new HashSet for iteration
HashSet set = new HashSet<>();
// Add data to HashMap
set.add(10);
set.add(20);
// Duplicates not allowed in HashMap, so avoid by
// HashMap
set.add(10);
set.add(50);
// Duplicates not allowed in HashMap, so avoid by
// HashMap
set.add(50);
// Create a iterator of type integer to iterate
// HashSet
Iterator it = set.iterator();
System.out.println(
"Iterate HashSet using iterator : ");
// Iterate HashSet with the help of hasNext() and
// next() method
while (it.hasNext()) {
// Print HashSet values
System.out.print(it.next() + " ");
}
}
}
Java
// Java program to iterate the HashSet
// using for loop
import java.util.*;
class GFG {
public static void main(String[] args)
{
// Creating a new HashSet for iteration
HashSet set = new HashSet<>();
// Add data to HashSet
set.add("Hello");
set.add("geeks");
set.add("on");
// duplicates not allowed in HashMap, so avoid by
// HashMap
set.add("geeks");
set.add("for");
// duplicates not allowed in HashMap, so avoid by
// HashMap
set.add("geeks");
System.out.println(
"Iterate HashSet using for loop : ");
// Iterate throw a simple for loop
for (String ele : set) {
// Print HashSet data
System.out.print(ele + " ");
}
}
}
Java
// Java program to iterate using forEach() loop
import java.util.*;
class GFG {
public static void main(String[] args)
{
// Creating a new HashSet for iteration
HashSet set = new HashSet<>();
// Add data to HashSet
set.add("Hello");
set.add("geeks");
set.add("on");
// duplicates not allowed in HashMap, so avoid by
// HashMap
set.add("geeks");
set.add("for");
// duplicates not allowed in HashMap, so avoid by
// HashMap
set.add("geeks");
System.out.println(
"Iterate HashSet using forEach loop : ");
// Iterate throw a forEach method in Java
set.forEach(System.out::println);
}
}
输出
Iterate HashSet using iterator :
50 20 10
方法二:使用for循环进行迭代
在这个方法中,我们使用一个简单的 for 循环来迭代 HashSet。下面是这种方法的实现:
例子:
Java
// Java program to iterate the HashSet
// using for loop
import java.util.*;
class GFG {
public static void main(String[] args)
{
// Creating a new HashSet for iteration
HashSet set = new HashSet<>();
// Add data to HashSet
set.add("Hello");
set.add("geeks");
set.add("on");
// duplicates not allowed in HashMap, so avoid by
// HashMap
set.add("geeks");
set.add("for");
// duplicates not allowed in HashMap, so avoid by
// HashMap
set.add("geeks");
System.out.println(
"Iterate HashSet using for loop : ");
// Iterate throw a simple for loop
for (String ele : set) {
// Print HashSet data
System.out.print(ele + " ");
}
}
}
输出
Iterate HashSet using for loop :
Hello geeks for on
方法 3:使用 forEach() 方法
在此方法中,我们使用Java中的forEach()循环迭代 HashSet。下面是这个方法的实现:
例子:
Java
// Java program to iterate using forEach() loop
import java.util.*;
class GFG {
public static void main(String[] args)
{
// Creating a new HashSet for iteration
HashSet set = new HashSet<>();
// Add data to HashSet
set.add("Hello");
set.add("geeks");
set.add("on");
// duplicates not allowed in HashMap, so avoid by
// HashMap
set.add("geeks");
set.add("for");
// duplicates not allowed in HashMap, so avoid by
// HashMap
set.add("geeks");
System.out.println(
"Iterate HashSet using forEach loop : ");
// Iterate throw a forEach method in Java
set.forEach(System.out::println);
}
}
输出
Iterate HashSet using forEach loop :
Hello
geeks
for
on