在 Java 中,Set 是一个不包含重复元素的集合,常见的实现有 HashSet、TreeSet、LinkedHashSet 等。遍历 Set 的方式有多种,下面按常用程度介绍:
Set<String> set = new HashSet<>();
set.add("A");
set.add("B");
set.add("C");
for (String s : set) {
System.out.println(s);
}
✅ 简洁
✅ 不需要索引
❌ 不能在遍历时删除元素(会抛异常)
Iterator(可安全删除元素)Iterator<String> it = set.iterator();
while (it.hasNext()) {
String s = it.next();
System.out.println(s);
// it.remove(); // 可以安全删除
}
✅ 可以在遍历中删除元素
✅ 所有 Collection 通用
forEach(Java 8+)set.forEach(System.out::println);
或:
set.forEach(s -> System.out.println(s));
✅ 代码最简洁
✅ 函数式写法
set.stream()
.filter(s -> s.startsWith("A"))
.forEach(System.out::println);
✅ 支持过滤、排序、映射
✅ 适合复杂操作
String[] arr = set.toArray(new String[0]);
for (String s : arr) {
System.out.println(s);
}
❌ 多一步转换,一般不使用
Set 没有下标,不能用 for (int i = 0; i < size; i++)HashSet 遍历顺序不保证TreeSet 按排序顺序LinkedHashSet 按插入顺序如果你有具体场景(比如遍历时删除、并发安全、性能要求),可以告诉我,我给你更合适的方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。