Collections.sort 是否尊重绑定输入元素之间的索引? (排序稳定性)
Does Collections.sort respect the index among the tied inputted elements? (Sorting Stability)
例如,如果我按 Individual::Age
对 10 个人的 List<Individual>
进行排序,然后我输入 Alice(3)、Bob(5) 和 Charles(3),输出将是 Alice (3), Charles(3), Bob(5) 或者 Alice 和 Charles 是否有可能以输出顺序与输入顺序不同的方式交换?
编辑:
看来他的属性有个专有的名字:https://en.wikipedia.org/wiki/Sorting_algorithm#Stability
This sort is guaranteed to be stable: equal elements will not be reordered as a result of the sort.
为此,Alice 和 Charles 是平等的(因为他们年龄相同)。调用sort
保证保持他们的相对顺序,Alice会出现在Charles之前。
这取决于排序算法的稳定性:见wikipedia page
取决于 JDK 实施
这完全取决于我们如何实现比较器(或可比较器)class。如果您只比较年龄,那么顺序将与插入的顺序相同(如使用合并排序的列表),或者如果您同时比较年龄和姓名,那么这将是字典顺序。
例如,如果我按 Individual::Age
对 10 个人的 List<Individual>
进行排序,然后我输入 Alice(3)、Bob(5) 和 Charles(3),输出将是 Alice (3), Charles(3), Bob(5) 或者 Alice 和 Charles 是否有可能以输出顺序与输入顺序不同的方式交换?
编辑:
看来他的属性有个专有的名字:https://en.wikipedia.org/wiki/Sorting_algorithm#Stability
This sort is guaranteed to be stable: equal elements will not be reordered as a result of the sort.
为此,Alice 和 Charles 是平等的(因为他们年龄相同)。调用sort
保证保持他们的相对顺序,Alice会出现在Charles之前。
这取决于排序算法的稳定性:见wikipedia page
取决于 JDK 实施
这完全取决于我们如何实现比较器(或可比较器)class。如果您只比较年龄,那么顺序将与插入的顺序相同(如使用合并排序的列表),或者如果您同时比较年龄和姓名,那么这将是字典顺序。