在 Java 中,Set 是一个不包含重复元素的集合,Set 本身没有下标,因此通常通过迭代器(Iterator)或增强 for 循环来遍历。
下面详细说明 Set 迭代器的用法。
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class SetIteratorDemo {
public static void main(String[] args) {
Set<String> set = new HashSet<>();
set.add("A");
set.add("B");
set.add("C");
// 获取迭代器
Iterator<String> it = set.iterator();
// 使用 while 循环遍历
while (it.hasNext()) {
String value = it.next();
System.out.println(value);
}
}
}
set.iterator():获取 Set 的迭代器hasNext():判断是否还有下一个元素next():获取下一个元素不要直接在 for-each 中删除 Set 元素,会抛异常
✅ 使用 Iterator.remove() 是安全的
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String value = it.next();
if ("B".equals(value)) {
it.remove(); // 安全删除
}
}
for (String s : set) {
System.out.println(s);
}
⚠️ 注意:
set.remove()set.forEach(System.out::println);
无论是:
HashSetTreeSetLinkedHashSet迭代器用法完全一样
Set<Integer> treeSet = new TreeSet<>();
Iterator<Integer> it = treeSet.iterator();
| 方式 | 是否推荐 | 是否可删除 |
|---|---|---|
| Iterator | ✅ 推荐 | ✅ 可 |
| for-each | ✅ 简单 | ❌ 不可 |
| forEach | ✅ 简洁 | ❌ 不可 |
如果你想要 LinkedHashSet 顺序遍历 或 TreeSet 排序遍历 的例子,也可以告诉我。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。