set无序中的有序,求解释??
最近碰到了一个问题,代码如下:
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,大家讨论一下??
--------------------编程问答--------------------
建议楼主去看看java JDK吧!那里面应该有清楚的介绍!
--------------------编程问答--------------------
看HashMap源码即知,HashSet就是用HashMap实现的
--------------------编程问答--------------------
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);
}
}
补充:Java , Java SE