java.util.HashSet int迭代顺序

kar*_*ler 3 java

当我运行下面显示的代码时,输​​出为[50,20,5,40,10,30].我不理解这个命令.为什么输出不是[10,5,20,30,40,50]?

List list = Arrays.asList(10, 5, 10, 20, 30, 40, 50);
System.out.println(new HashSet(list));
Run Code Online (Sandbox Code Playgroud)

Sur*_*tta 5

文件说

此类实现Set接口,由哈希表(实际上是HashMap实例)支持.它不能保证集合的迭代顺序; 特别是,它不保证订单会随着时间的推移保持不变.该类允许null元素.

去找LinkedHashSet


Rav*_*yal 5

HashSet不保持插入顺序.你需要的是一个LinkedHashSet.