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;
}
}
}}这是一种对大学提供的课程进行分类的方法。
例如,每门课程都有自己的系(即数学)、数字(即263)和标题(即工程师的常微分方程)--工程师的数学263常微分方程。
在我的另一个类中,我创建了一个对象课程,它有自己的访问器和变异器(即getNum()、setNum()、getDept()等)。
考虑到一长串的课程,我想根据课程编号来安排,但上面的方法似乎行不通。
有人能暗示原因吗?
发布于 2015-12-02 01:53:27
temp变量是对Course对象的引用。
实际上,数组list是对Course对象的引用数组。
您只需要更改引用,而不需要将对象的值复制到temp中。只需执行temp = list[i];以保持对数组的第一个元素的引用。
发布于 2015-12-02 02:01:07
我宁愿实现Comparable接口。
class Course implements Comparable<Course>{
@Override
public int compareTo(Course other){
return this.getNum().compareTo(other.gerNum());
}
}然后可以使用Array.sort(Course[] list)对课程数组进行排序。
https://stackoverflow.com/questions/34033542
复制相似问题