public static void sortByNumber(Course[] list) {
Course temp = new Course();
boolean fixed = false;
while(fixed == false) {
fixed = true;
for (int i = 0; i<list.length-1; i++) {
if (list[i].getNum() > list[i+1].getNum()) {
temp.setNum(list[i].getNum());
temp.setDept(list[i].getDept());
temp.setTitle(list[i].getTitle());
list[i] = list[i+1];
list[i+1] = temp;
fixed = false;
}
}
}}
这是一种排序大学课程的方法。
例如,每个课程都有其部门(即MATH),编号(即263)和标题(即工程师的常微分方程) - MATH 263工程师常用微分方程。
在我的另一个课程中,我创建了一个对象Course,它有自己的访问器和mutator(即getNum(),setNum(),getDept()等等。)
鉴于一长串课程,我想根据他们的课程编号安排,但上述方法似乎不起作用。
有人暗示这个原因吗?
答案 0 :(得分:3)
temp
变量是对Course
对象的引用。
实际上,数组list
是对Course
个对象的引用数组。
您只需要更改引用,而不是将对象的值复制到temp
。只需要temp = list[i];
来保持对数组第i个元素的引用。
答案 1 :(得分:0)
我宁愿实现Comparable
界面。
class Course implements Comparable<Course>{
@Override
public int compareTo(Course other){
return this.getNum().compareTo(other.gerNum());
}
}
然后您可以使用Array.sort(Course[] list)
对课程数组进行排序。