Collections.sort是否尊重绑定的输入元素中的索引? (分类稳定性)

时间:2015-07-10 14:17:38

标签: java sorting collections comparator

例如,如果我按List<Individual>对10个人Individual::Age进行排序,并输入Alice(3),Bob(5)和Charles(3),则输出为Alice(3) ),查尔斯(3),鲍勃(5)或者爱丽丝和查尔斯是否有可能以不同于输入的顺序输出它们?

编辑:
似乎他的财产有一个正确的名称:https://en.wikipedia.org/wiki/Sorting_algorithm#Stability

3 个答案:

答案 0 :(得分:8)

引用the documentation

  

此类保证稳定:等值元素不会因排序而重新排序。

为此目的,爱丽丝和查尔斯是平等的(因为他们有相同的年龄)。调用sort保证保持相对顺序,Alice将出现在Charles之前。

答案 1 :(得分:1)

这取决于排序算法的稳定性:请参阅wikipedia page

取决于JDK实现

答案 2 :(得分:1)

这完全取决于我们如何实现比较器(或类似的)类。如果您只比较年龄,那么订单将与插入相同(如使用合并排序的列表),或者如果您要比较年龄和名称,那么这将按字典顺序。