Java中输出顺序哈希集的基础是什么

Java中输出顺序哈希集的基础是什么,java,hashset,Java,Hashset,我正在尝试打印哈希集的内容。它输出为[D,E,F,A,B,C]。我希望它输出类似[F,E,D,B,A,C]的东西。这背后有逻辑吗 public class TestSomething { public static void main(String[] args) { HashSet<String> hashSet = new HashSet<String>(); hashSet.add("F"); hashSet.

我正在尝试打印哈希集的内容。它输出为[D,E,F,A,B,C]。我希望它输出类似[F,E,D,B,A,C]的东西。这背后有逻辑吗

public class TestSomething {
    public static void main(String[] args) {
        HashSet<String> hashSet = new HashSet<String>();
        hashSet.add("F");
        hashSet.add("E");
        hashSet.add("D");
        hashSet.add("B");
        hashSet.add("A");
        hashSet.add("C");

        System.out.println(hashSet.toString())
    }
}
公共类TestSomething{
公共静态void main(字符串[]args){
HashSet HashSet=新的HashSet();
添加(“F”);
添加(“E”);
添加(“D”);
添加(“B”);
添加(“A”);
添加(“C”);
System.out.println(hashSet.toString())
}
}
来自:

它不保证集合的迭代顺序;在里面 特别是,它不能保证订单保持不变 随着时间的推移

如果您需要一个有序的集合,请尝试从

[Hashset]实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证集合的迭代顺序;特别是,它不能保证订单在一段时间内保持不变


对预期输出使用LinkedHashSet