增强for循环遍历hashset简洁但顺序不固定,不可在循环中修改集合,需判空处理null元素;若需有序遍历应改用linkedhashset、treeset或排序arraylist。

Java 中用增强 for 循环遍历 HashSet 很简单,直接写 for (Type element : set) 即可,无需关心索引或迭代器。
增强 for 循环的基本写法
增强 for 循环(也叫 for-each)是遍历集合最简洁的方式。对 HashSet 来说,它会按内部哈希表的顺序(非插入顺序、非排序顺序)逐个访问元素:
HashSet<string> set = new HashSet();
set.add("apple");
set.add("banana");
set.add("cherry");
for (String fruit : set) {
System.out.println(fruit);
}</string>
注意:输出顺序不固定,可能每次运行都不同,这是 HashSet 的特性,不是语法问题。
遍历时不能修改集合内容
在增强 for 循环中,**不能调用 set.remove() 或 set.add()**,否则会抛出 ConcurrentModificationException:
- ❌ 错误示例:
for (String s : set) { if (s.equals("apple")) set.remove(s); } - ✅ 正确做法:改用
Iterator并调用iterator.remove()
遍历 null 元素要小心
HashSet 允许存一个 null,遍历时需注意判空,尤其在调用方法前:
for (String s : set) {
if (s != null && s.startsWith("a")) {
System.out.println(s);
}
}
想按特定顺序遍历?换集合类型
如果需要有序输出(如插入顺序或自然排序),HashSet 不适合:
- 按插入顺序 → 改用
LinkedHashSet - 按自然/自定义顺序 → 改用
TreeSet - 临时排序 → 遍历前转成
ArrayList再Collections.sort()
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











