import java.util.Collection; import java.util.HashSet; import java.util.Iterator; public class TestIterator { public static void main(String[] args) { Collection c = new HashSet(); c.add(new Name("f1", "l1")); c.add(new Name("f2", "l2")); c.add(new Name("fff3", "lll3")); c.add(new Name("f4", "l4")); c.add(new Name("fff5", "lll5")); Iterator it = c.iterator(); while (it.hasNext()) { Name n = (Name)it.next(); System.out.println(n.getFirstName()); // 输出的结果,只要能遍历就可以,因为 HashSet 没顺序。 } System.out.println("--------------------"); for (Iterator i = c.iterator(); i.hasNext();) { Name name = (Name)i.next(); if (name.getFirstName().length() < 3) { i.remove(); // 这里不要写 c.remove(name) , 会产生例外。因为此时这里的大管家是 Iterator, 它会执行锁定。 // c.remove(name); } } System.out.println(c); } }f1 fff3 f2 fff5 f4 // 输出的结果,只要能遍历就可以,因为 HashSet 没顺序。
--------------------
[fff3 lll3, fff5 lll5]