gpt4 book ai didi

java - 使用具有依赖性的 Comparable/Comparator

转载 作者:行者123 更新时间:2023-12-01 18:32:39 29 4
gpt4 key购买 nike

我被要求为某个类实现ComparableCompartor,我们称之为V
假设我有一个 V 的 Collection 或 Set(还不确定,但我认为这并不重要)。

V 有一个方法,可以评估它的“权重”,我们称之为evaluateWeight(String data)
正如您所理解的,权重取决于输入 data,它作为 evaluateWeight 的参数给出。

因此,比较取决于此参数,data

一种解决方案可能是;添加一个数据成员,其中将包含最后的权重计算。这个问题还有其他巧妙的解决方案吗?
谢谢。

最佳答案

data作为比较器的字段。当你制作比较器时将其传入。然后,当比较器完成工作时,它可以将其传递到所比较的所有内容的 evaluateWeight 方法中。

public class ComparatorWithData implements Comparator<V> {
private String data;

public ComparatorWithData(String data) {
this.data = data;
}

@Override
public int compare(V o1, V o2) {
return o1.evaluateWeight(data).compareTo(o2.evaluateWeight(data));
}
}

当然,此示例假设 evaluateWeight 使用 compareTo 方法返回某些内容。

关于java - 使用具有依赖性的 Comparable/Comparator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23429799/

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