gpt4 book ai didi

java - Java 集合中哪些地方需要使用 collections.sort() 和 comparable 和 comparator 接口(interface)?

转载 作者:行者123 更新时间:2023-11-30 09:23:51 24 4
gpt4 key购买 nike

通过一些文章,我对集合有了一些了解。
但是我很困惑应该在哪里实现 collections.sort() 方法以及在哪里需要使用可比接口(interface)(compareTo() 和比较器接口(interface)(compare())。

Comparable 接口(interface)用于比较这个和另一个引用对象,但是 comparator 用于比较两个对象。

我想知道到底在什么情况下需要使用方法?

谢谢,

最佳答案

你不应该实现 Collections.sort() ;这个方法是built-in to Java .在不提供 Comparator 的情况下调用该方法按自然顺序排序,如果它是Comparable .否则,提供 ComparatorComparator 进行排序的方式。

你应该有类实现 Comparable并提供 compareTo如果类具有自然顺序,则方法如 Comparable 中所示javadocs。一个例子是 IntegerDouble ,当然有一个自然的数学排序。

您应该创建一个实现 Comparator 的类当您无法使对象的类进行排序时Comparable或者当你想呈现一个替代自然顺序的顺序时,或者当你想在没有自然顺序的情况下强加一个顺序时。一个例子是颠倒自然顺序(例如,降序排序,从最大到最小)。另一个示例是具有多个字段的数据对象,您希望在多个字段上进行排序,例如一个Person对象 firstNamelastName : 你可以有一个 ComparatorlastName 上排序首先,另一个在 firstName 上排序首先。

关于java - Java 集合中哪些地方需要使用 collections.sort() 和 comparable 和 comparator 接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15890247/

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