有一个Map对象,这时候使用keySet()方法获取所有的key值,比如: Map map = new HashMap(); map.put(1, "a"); map.put(2, "b"); map.put(3, "c"); map.put(4, "d"); Set keys1 = map.keySet(); Set keys2 = map.keySet(); Set keys3 = map.keySet(); 上面三个set对象key1,key2,key3引用的是一个对象。这是map的keySet()方法只返回一个set实例,所以当从key1中删除一个对象时候,key2和key3将会受到影响。 keys1.remove(1); System.out.println(keys1); System.out.println(keys2); System.out.println(keys3); 打印结果为: [2, 4, 3] [2, 4, 3] [2, 4, 3] import Java.util.*; public class collectionProblem { public static void main(String[] args) { HashSet set=new HashSet(10); set.add("1"); set.add("2"); set.add("3"); Iterator it=set.iterator(); while (it.hasNext()) { System.out.println(it.next()); } } } 打印的顺序于你插入的顺序无关,而与你插入的内容有关(根据HASHCODE排序)的!(HASHSET内部是按HASHCODE排序的!) iterator()是为了各种集合的实现类能有一个统一的遍历方式,不必每种都记一个 在遍历集合用,比如: String[] strArr = new String[] { "a", "b", "c", "d", "e"}; List list = Arrays.asList(strArr); Iterator iterator = list.iterator(); String temp=null; while (iterator.hasNext()) { temp=(String)iterator.next(); System.out.println(temp); } } 一般集合类都可用Iterator(迭代)来遍历