gpt4 book ai didi

Java比较器将大学生的学生ID从最低到最高排序

转载 作者:行者123 更新时间:2023-11-30 08:14:39 25 4
gpt4 key购买 nike

这是我的代码,请不要给我作业的解决方案。谁能告诉我编译错误?以及为什么它不起作用。我之前写过这样的代码...

简单代码:

学生.java

public class Student 
{
private int id;

public Student(int NewId)
{
id = NewId;
}
public int getId(){ return id; }
public void setId(int NewId){ id = NewId; }
}

排序.java

public class Sort
{
public static Comparator<Student> getStudentIdComparator()
{
return new IdComparator();//<- compile error
}

class IdComparator implements Comparator<Student>
{
@Override
public int compare(Student o1, Student o2)
{
return o1.getId() - o2.getId();
}
}
}

主文件.java

class MainFile
{
public static void main(String[] args)
{
Student s[] = new Student[10];
// Here you would just create the instance variable with student id in the argument
Comparator<Student> studentIdComparator = Sort.getStudentIdComparator();

Arrays.sort(students, studentIdComparator);
}
}

最佳答案

您正在尝试从静态类中访问非静态类。

只需在比较器类定义之前添加 static 关键字,例如:

static class IdComparator implements Comparator<Student>

或者像这样使用 Sort 的实例:

new Sort().new IdComparator();

同时避免使用 return o1.getId() - o2.getId();,因为它可能会导致下溢。使用

return Integer.compare(o1.getId(), o2.getId());

关于Java比较器将大学生的学生ID从最低到最高排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29362053/

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