温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Set迭代器如何使用

发布时间:2026-10-05 06:52:33 来源:亿速云 阅读:101 作者:小樊 栏目:编程语言

在 Java 中,Set 是一个不包含重复元素的集合,常用的实现类有 HashSet、LinkedHashSet、TreeSet 等。
虽然 Set 没有像 List 那样的索引,但你可以使用**迭代器(Iterator)**来遍历元素。


一、基本用法(推荐方式)

1️⃣ 使用 Iterator 遍历 Set

import java.util.*;

public class SetIteratorDemo {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        set.add("Apple");
        set.add("Banana");
        set.add("Orange");

        // 获取迭代器
        Iterator<String> iterator = set.iterator();

        // 使用 while 循环遍历
        while (iterator.hasNext()) {
            String item = iterator.next();
            System.out.println(item);
        }
    }
}

✅ 关键点:

  • hasNext():判断是否还有下一个元素
  • next():获取下一个元素

二、使用增强 for 循环(底层也是迭代器)

for (String item : set) {
    System.out.println(item);
}

✅ 简洁,但不能在遍历时删除元素


三、在遍历时使用迭代器删除元素(重要)

⚠️ 不要用 set.remove() 在 for-each 中删除元素,会抛异常
✅ 正确方式:使用 iterator.remove()

Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
    String item = iterator.next();
    if ("Banana".equals(item)) {
        iterator.remove(); // 安全删除
    }
}

四、TreeSet(有序 Set)示例

Set<Integer> set = new TreeSet<>();
set.add(3);
set.add(1);
set.add(2);

Iterator<Integer> it = set.iterator();
while (it.hasNext()) {
    System.out.println(it.next());
}

输出(自动排序):

1
2
3

五、常见错误 ❌

❌ 在 for-each 中删除元素:

for (String s : set) {
    set.remove(s); // ConcurrentModificationException
}

❌ 调用 next() 前不判断 hasNext()


六、总结

方式 是否推荐 能否删除
Iterator ✅ 推荐 ✅ 可以
for-each ✅ 简单 ❌ 不行
for + index ❌ 不支持 ❌

如果你使用的是 Java 8+,我也可以给你讲 forEach() 或 Stream 的用法。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手