在 Java 中,遍历 Set 有多种常见方式,下面按常用程度给你总结,并附示例代码。
Set<String> set = new HashSet<>();
set.add("A");
set.add("B");
set.add("C");
for (String s : set) {
System.out.println(s);
}
✅ 优点:简洁、可读性好
✅ 推荐日常使用
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
String s = iterator.next();
System.out.println(s);
}
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
if ("B".equals(iterator.next())) {
iterator.remove(); // 安全删除
}
}
⚠️ 注意:
for-each 中直接 set.remove(),否则会抛 ConcurrentModificationExceptionset.forEach(s -> System.out.println(s));
或:
set.forEach(System.out::println);
✅ 简洁、函数式风格
String[] array = set.toArray(new String[0]);
for (String s : array) {
System.out.println(s);
}
set.stream()
.filter(s -> s.startsWith("A"))
.forEach(System.out::println);
✅ 适合:过滤、映射、并行处理
| 场景 | 推荐方式 |
|---|---|
| 普通遍历 | 增强 for |
| 需要删除元素 | Iterator |
| Java 8+ 简洁写法 | forEach |
| 复杂数据处理 | Stream |
如果你愿意,我也可以帮你对比 Set / List / Map 的遍历差异,或者结合 HashSet / TreeSet 讲顺序问题。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。