gpt4 book ai didi

java - Collections.sort 是否保持相等元素的顺序?

转载 作者:搜寻专家 更新时间:2023-10-30 21:05:49 24 4
gpt4 key购买 nike

我有一个按日期参数排序的对象列表,我想按类别参数对它们重新排序,但保持类别内的日期顺序。

这样就足够了吗,还是我必须实现一个比较器来考虑同一类别对象的日期?

// sort the list by category asc(, date asc )
Collections.sort((List<Object>)entries, new Comparator<Object>() {

@Override public int compare(Object elementA, Object elementB) {
return elementA.category.compareTo(elementB.category); // what happens when elementA.category.equals(elementB.category)?
}

});

最佳答案

您问题中的代码将执行您需要的操作,因为 Collections.sort() 确实保留了相等元素的顺序。

来自documentation :

This sort is guaranteed to be stable: equal elements will not be reordered as a result of the sort.

换句话说,如果条目在 sort() 之前按日期排序,则在 sort( )

如果您不想依赖原始顺序,您可以轻松地扩展比较器以首先比较类别,然后使用日期打破平局。

关于java - Collections.sort 是否保持相等元素的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28613886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com