当我运行如下所示的代码时,输出为 [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));
    当我运行如下所示的代码时,输出为 [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));
    HashSet不维护插入顺序。你需要的是一个LinkedHashSet.
该类HashSet不保证您输入数据的顺序。
如果你不把你List的HashSet,而是继续,List你会得到你在其中添加值的顺序。
您可以使用LinkedHashSet来保持插入顺序。
如果要排序,List则可以使用Collections.sort(). (额外信息,不需要的请忽略)
从文档
Java.util.HashSet 不保证集合的迭代顺序;特别是,它不保证订单会随着时间的推移保持不变。