最近碰到了一个问题,代码如下:
package com.util;import java.util.HashSet;
import java.util.Set;public class Test {
public static void main(String[] args) {
Set<String> set=new HashSet<String>();
set.add("a");
set.add("b");
set.add("c");
set.add("d");
set.add("e");
set.add("f");
System.out.println(set.iterator().next());
}}输出结果为什么总是f,当去掉f的时候,输出结果总是d,大家讨论一下??

解决方案 »

  1.   

    建议楼主去看看java JDK吧!那里面应该有清楚的介绍!
      

  2.   

    看HashMap源码即知,HashSet就是用HashMap实现的
      

  3.   

    import java.util.*;public class Test {
        public static void main(String[] args) {
            Set<String> set = new HashSet<String>();
            set.add("a");
            set.add("b");
            set.add("c");
            set.add("d");
            set.add("e");
            set.add("f");

    // 这句不好,你仅仅只使用了iterator打印了第一个元素
            // System.out.println(set.iterator().next());

    ////////////////////////////////////////////////////////
    // 以下是三种可选的打印set的方式
    // foreach
    for(String s : set) {
    System.out.println(s);
    }

    // 迭代器
    Iterator<String> it = set.iterator();
    while(it.hasNext()) {
    System.out.println(it.next());
    }

    // 直接打印
    System.out.println(set);
        }
    }