gpt4 book ai didi

java - 如何使用自己的比较器按类的字段进行排序?

转载 作者:行者123 更新时间:2023-12-02 19:01:37 24 4
gpt4 key购买 nike

我有一个示例类,例如Country:

class Country {
public String name;
public int population;
public Flag flag;
...
}

我在其他地方定义了这个 Flag

class Flag {
String id;
int pixel;
...
}

现在我创建一个单独的比较器 DefaultFlagRankingComparator(),它可以按 id 对 Flag 进行排序。如何使用 DefaultFlagRankingComparator() 按标志 id 对国家/地区列表进行排序?

最佳答案

您可以调用Comparator的compare方法与每个国家的flag字段。

DefaultFlagRankingComparator flagComparator =
new DefaultFlagRankingComparator();
Collections.sort(countries, (a, b) ->
flagComparator.compare(a.getFlag(), b.getFlag()));

您还可以使用 Comparator.comparing使用 key 提取函数和比较这些 key 的 Comparator 创建一个 Comparator(如 Louis Wasserman 的建议)。

DefaultFlagRankingComparator flagComparator =
new DefaultFlagRankingComparator();
Collections.sort(countries,
Comparator.comparing(Country::getFlag, flagComparator));

关于java - 如何使用自己的比较器按类的字段进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65485183/

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