例如,如果我按List<Individual>
对10个人Individual::Age
进行排序,并输入Alice(3),Bob(5)和Charles(3),则输出为Alice(3) ),查尔斯(3),鲍勃(5)或者爱丽丝和查尔斯是否有可能以不同于输入的顺序输出它们?
编辑:
似乎他的财产有一个正确的名称:https://en.wikipedia.org/wiki/Sorting_algorithm#Stability
答案 0 :(得分:8)
此类保证稳定:等值元素不会因排序而重新排序。
为此目的,爱丽丝和查尔斯是平等的(因为他们有相同的年龄)。调用sort
保证保持相对顺序,Alice将出现在Charles之前。
答案 1 :(得分:1)
这取决于排序算法的稳定性:请参阅wikipedia page
取决于JDK实现
答案 2 :(得分:1)
这完全取决于我们如何实现比较器(或类似的)类。如果您只比较年龄,那么订单将与插入相同(如使用合并排序的列表),或者如果您要比较年龄和名称,那么这将按字典顺序。