遍历set集合
时间: 2025-04-25 11:32:42 浏览: 24
### 如何在编程中遍历 Set 集合
#### 使用增强型 for 循环遍历 Set
增强型 `for` 循环是 Java 中一种简便的方式用于遍历集合中的元素。对于 `Set` 类型的数据结构同样适用。
```java
import java.util.HashSet;
import java.util.Set;
public class TraverseSetExample {
public static void main(String[] args) {
// 创建 HashSet 并添加一些整数
Set<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(3);
// 使用增强型 for 循环遍历 Set
for (Integer number : set) {
System.out.println(number);
}
}
}
```
此方法简单直观,适合大多数情况下对 `Set` 的遍历需求[^4]。
#### 利用迭代器遍历 Set
当需要更灵活地控制遍历时,可以采用 `Iterator` 接口提供的功能来进行遍历操作。
```java
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class IteratorTraverseSetExample {
public static void main(String[] args) {
// 初始化一个包含字符串的 HashSet 实例
Set<String> stringSet = new HashSet<>();
stringSet.add("apple");
stringSet.add("banana");
stringSet.add("orange");
// 获得该 Set 对象对应的迭代器实例
Iterator<String> iterator = stringSet.iterator();
// 迭代访问每一个元素直到结束
while (iterator.hasNext()) {
String fruit = iterator.next();
System.out.println(fruit);
// 如果条件满足还可以在此处执行其他逻辑,比如移除符合条件的对象
if ("banana".equals(fruit)) {
iterator.remove(); // 安全地从集合中删除当前项
}
}
// 输出修改后的集合状态
System.out.println(stringSet);
}
}
```
这种方法允许在遍历过程中安全地增删元素,并且提供了更多的灵活性[^5]。
#### 应用 Stream API 处理 Set 数据流
自 JDK8 开始引入了 Streams API ,它使得处理大量数据变得更为方便快捷。这里给出一段基于 Lambda 表达式的例子:
```java
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Collectors;
public class StreamApiTraverseSetExample {
public static void main(String[] args) {
// 构建一个由多个单词组成的不可变 Set
Set<String> words = Arrays.asList("hello", "world", "java").stream().collect(Collectors.toCollection(HashSet::new));
// 将所有大写字母转换成小写并通过逗号分隔打印出来
words.stream()
.map(String::toLowerCase)
.forEach(System.out::println);
// 或者收集到新的列表里去
List<String> lowerCaseWordsList = words.stream()
.map(String::toLowerCase)
.collect(Collectors.toList());
}
}
```
这种方式不仅限于简单的读取显示,还支持复杂的映射变换以及聚合运算等功能。
阅读全文
相关推荐


















