gpt4 book ai didi

java - 按字符串顺序配置的排序逻辑

转载 作者:行者123 更新时间:2023-12-01 22:00:20 25 4
gpt4 key购买 nike

我有一个逗号分隔的字符串,其中包含对学生列表进行排序的排序标准:

Input:
String sortOrder = "height, weight, age"
List<student> students;

上面的每个元素都是学生对象上的比较器,它们使用一些复杂的逻辑对学生对象进行排序。我需要知道如何最好地翻译 sortOrder 字符串中出现的排序顺序,并按该顺序激活匹配的比较器。因此,对于上面的示例,高度比较器将首先运行,年龄比较器最后运行。

最佳答案

您可以创建一个 HashMap 将这些单词映射到 Comparator 对象。然后使用比较器进行排序

Map<String, Comparator<student>> comparators = new HashMap<>();

Comparator 对象添加到 comparators 后,如下所示:

comparators.put("height", Comparator.comparingDouble(student::getHeight));

如果您想连续执行不同的排序,只需浏览 sortOrder 中的单词并应用,例如

for (String comp : sortOrder.split(", "))
Collections.sort(students, comparators.get(comp));

关于java - 按字符串顺序配置的排序逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33637783/

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