gpt4 book ai didi

java - 在java中组合比较器

转载 作者:行者123 更新时间:2023-11-30 12:01:56 24 4
gpt4 key购买 nike

我有 2 个比较器:

Comparator<? super MyClass> COMPARATOR_BY_PRIORITY =
Comparator.nullsFirst(
Comparator.comparing(c -> c.isEmpty() ? null : -c.getPriority())
);

Comparator<? super MyClass> COMPARATOR_BY_PRICE =
Comparator.nullsFirst(
Comparator.comparing(c -> c.isEmpty() ? null : c.getPrice())
);

我想将它们组合起来,以便使用组合比较器可以按优先级对项目进行第一排序,并按价格对具有相同优先级的项目进行排序。如何创建组合比较器?

我正在尝试类似的东西:

Comparator<? super MyClass> COMBINED_COMPARATOR =
COMPARATOR_BY_PRIORITY.thenComparing(COMPARATOR_BY_FARE);

最佳答案

正如@tobias_k 所指出的,没有 ? super :

Comparator<MyClass> COMPARATOR_BY_PRIORITY =
Comparator.nullsFirst(
Comparator.comparing(c -> c.isEmpty() ? null : -c.getPriority())
);

Comparator<MyClass> COMPARATOR_BY_PRICE =
Comparator.nullsFirst(
Comparator.comparing(c -> c.isEmpty() ? null : c.getPrice())
);

Comparator<MyClass> COMBINED_COMPARATOR =
COMPARATOR_BY_PRIORITY.thenComparing(COMPARATOR_BY_FARE);

关于java - 在java中组合比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59103666/

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