【发布时间】:2018-09-18 07:28:30
【问题描述】:
最近遇到了这个
String s = "9495963";
Set<Character> set = new HashSet<Character>();
for(char e : s.toCharArray()){
set.add(e);
}
System.out.println(set);//[3, 4, 5, 6, 9]
我得到的输出是 [3, 4, 5, 6, 9],那么,如果 HashSet 不保留任何顺序,那么这些数字是如何按升序排列的呢?
【问题讨论】:
-
迭代哈希集时没有顺序保证。这并不意味着您按顺序查看这些值有任何错误。
-
我知道 LinkedHashSet 保留插入顺序和 TreeSet 重新排列为升序,但如果 HashSet 没有排序,那为什么输出呢?
-
使用 LinkedHashSet。这维护了插入顺序,TreeSet用于获取插入元素的排序顺序。
-
@kjunz 有 5 个! (120) 5 件事情的安排方式。元素可以以这 120 种方式中的任何一种出现;其中任何一个都同样有效。