Java 遍历一个HashSet
我们都知道 HashSet 元素是无序的,所以被遍历的元素可以按任何顺序打印。为了对我们的HashSet进行操作,如插入、删除、更新元素,首先我们需要接触访问HashSet。下面是一些方法,我们可以通过这些方法对元素进行遍历,以执行任何类型的操作o Set元素,如下所示。
方法
- 使用for-each循环
- 使用forEach方法
- 使用迭代器
方法1:使用for-each循环
这是另一种数组遍历技术,就像Java 5中引入的for循环、while循环、do-while循环。它像普通的for循环一样以关键字 for 开始。你不需要声明和初始化一个循环计数器变量,而是声明一个与数组基本类型相同的变量,后面加一个冒号,然后再加上数组名称数组遍历技术,就像Java 5中引入的for循环、while循环、do-while循环。
例子
// Java program to demonstrate iteration over
// HashSet using an Enhanced for-loop
import java.util.*;
class IterationDemo {
public static void main(String[] args)
{
// your code goes here
HashSet<String> h = new HashSet<String>();
// Adding elements into HashSet using add()
h.add("Geeks");
h.add("for");
h.add("Geeks");
// Iterating over hash set items
for (String i : h)
System.out.println(i);
}
}
输出
Geeks
for
方法2:使用流类的forEach()方法
Stream forEach(Consumer action) 为流中的每个元素执行一个动作。Stream forEach(Consumer action)是一个 终端操作 ,也就是说,它可以遍历流,产生一个结果或一个副作用。
提示: 在Java 8或以上版本中,我们可以使用forEach()方法遍历一个List或Collection。
例子
// Java program to demonstrate iteration over
// HashSet using forEach() method
import java.util.*;
class IterationDemo {
public static void main(String[] args)
{
// your code goes here
HashSet<String> h = new HashSet<String>();
// Adding elements into HashSet using add()
h.add("Geeks");
h.add("for");
h.add("Geeks");
// Iterating over hash set items
h.forEach(i -> System.out.println(i));
}
}
输出
Geeks
for
方法3:使用一个迭代器
iterator()方法是用来获取这个集合中的元素的迭代器。这些元素不按特定顺序返回。下面是演示该方法的java程序。
例子
// Java program to Illustrate Traversal over HashSet
// Using an iterator
// Importing required classes
import java.util.*;
// Main class
class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating empty HashSet by declaring object
// of HashSet class of string type
HashSet<String> h = new HashSet<String>();
// Adding elements into HashSet
// using add() method
h.add("Geeks");
h.add("for");
h.add("Geeks");
// Iterating over HashSet elements
// using iterator
Iterator<String> i = h.iterator();
// Holds true till there is single element remaining
// in the Set
while (i.hasNext())
// Printing the elements
System.out.println(i.next());
}
}
输出
Geeks
for
时间复杂度: O(n)添加n个元素
辅助空间: O(n)
极客教程