java 对象数组排序的问题,急急急急

来源:百度知道 编辑:UC知道 时间:2024/05/13 03:24:28
以下是我编写的程序,写了一个Score类,里面包含学生的相关信息,在主程序中用ArrayList进行排序,是按照学生成绩排序的,怎么排序打印学生完整信息哦,方法我在Score类里面写了,在用Collections。binarySearch查找哦。对ArrayList、Collections 的使用不熟练,望牛人在我的程序上小小的改动,错误基本上也没有什么。
package method2;

import java.util.ArrayList;
import java.util.Collections;

public class Test {
public static void main(String args[]){
ArrayList list= new ArrayList();
list.add(new Score(1, "Liming",472));
list.add(new Score(2, "Fangfang",445));
list.add(new Score(3, "Lily",323));
list.add(new Score(4, "Green",540));
list.add(new Score(5, "Mike",332));

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

for(int i=0;i<list.size();i++){
System.out.println(list.get(i).toString());
}

Collections.binarySearch(list, new Score(1, "Liming",472));
}
}

class StuScoreComparator extends Score implements

修改Score类声明,实现java.lang.Comparable接口;
public class Score implements java.lang.Comparable{

在方法getStuInfomation() 后追加两个方法(compareTo为Comparable接口要求实现此方法,toString为重写基类的打印输出方法):
    public int compareTo(Object otherScore) {
        return this.stuScore - ((Score) otherScore).stuScore;
    }

    public String toString() {
        return "[学号:" + stuNumber + "分数:" + stuScore + "姓名:" + stuName + "]";
    }
重新编译Score.java,再运行Test,输出结果为:
----------
[学号:3分数:323姓名:Lily]
[学号:5分数:332姓名:Mike]
[学号:2分数:445姓名:Fangfang]
[学号:1分数:472姓名:Liming]
[学号:4分数:540姓名:Green]

-->2008/04/05
哎......<