gpt4 book ai didi

Java 对具有多个参数的对象进行排序

转载 作者:搜寻专家 更新时间:2023-11-01 01:46:07 26 4
gpt4 key购买 nike

我最近一直在努力加深对排序算法及其与不同类型输入的关系的理解。目前,我正在开发一个学生管理程序,其中每个学生都有三个参数:姓氏、GPA 和用户 ID(字符串、 double 、整数)。他们每个都存储在具有这三个参数的 Student 类中,并且有 DOZENS 个学生(该程序的一个关键功能是输入、删除和更新学生)。

我的问题是:使用主要的排序算法(合并排序、快速排序等),按每个参数对我的学生列表进行排序的最佳方法是什么?例如,执行合并排序以按 GPA 对列表进行排序的最佳方法是什么?或者使用快速排序按姓氏对列表进行排序?

基本上我的问题归结为...如果这些对象没有三个参数,我可以对它们进行排序(编写合并排序来对 100 个数字进行排序对我来说非常容易)。如何管理其他两个参数并确保它们在排序后可访问?

最佳答案

这在 Java 中完成的方式是使用不同的 Comparators .然后你说:

Collections.sort(list, new NameComparator());

或者

Collections.sort(list, new GpaComparator());

这些比较器使用不同的字段来定义两个元素之间的顺序。

例如,名称比较器可能是:

class NameComparator implements Comparator< Student> {
@Override public int compare(Student left, Student right) {
return left.getName().compareTo(right.getName());
}
}

GpaComparator 可能是

class GpaComparator implements Comparator< Student> {
@Override public int compare(Student left, Student right) {
if (left.getGpa() < right.getGpa()) {
return -1;
} else if (left.getGpa() > right.getGpa()) {
return 1;
} else {
return 0;
}
}

关于Java 对具有多个参数的对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10016506/

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