多属性排序问题

import java.util.Scanner;
public class TestScore
{
   public static int[] ScoreSort(int s[])
   {
     int t;
     for(int i=0;i<s.length;i++)
      {
       for(int j=0;j<s.length-i-1;j++)
        {
         if(s[j]>s[j+1]){
           t=s[j];
           s[j]=s[j+1];
           s[j+1]=t;
           }
        }
       }
       return s;   
   }
    public static void main(String[] args)
    {
    int n;
   
    int[] k;
    Scanner scan=new Scanner(System.in);
    System.out.println("请输入学生个数:");
    n=scan.nextInt();
    Student[] stu = new Student[n];
    k=new int[n];
    for(int i=0;i<n;i++)
    {
    stu[i]=new Student();
    System.out.println("请输入第"+(i+1)+"学生姓名:");
    stu[i].setName(scan.next());
    System.out.println("请输入该学生成绩:");
    stu[i].setScore(scan.nextInt());
    }
      for(int j=0;j<n;j++)
      {
      k[j]=stu[j].getScore();//成绩赋给k数组
      }
       k=ScoreSort(k);//冒泡排序
      
      System.out.println("最高分为:"+k[n-1]);
    System.out.println("第二高分:"+k[n-2]);
    }



}

就是输入n个学生,输入姓名和得分之后,打印出得分最高的和第二高的学生姓名,但是我做出来的是把得分赋值给k数组,这样一来,下标就和原来的乱了,所以找不到学生姓名了,请大家帮我纠正下,能用什么方法,谢谢

嗯,这样之类……
[code="java"]import java.util.*;

class Student {
private int score;
private String name;

public void setName(String name) {
    this.name = name;
}

public String getName() {
    return name;
}

public void setScore(int score) {
    this.score = score;
}

public int getScore() {
    return score;
}

}

public class TestScore {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入学生个数:");
int n = scan.nextInt();
Student[] stu = new Student[n];
for(int i = 0; i < n; ++i) {
stu[i] = new Student();
System.out.println("请输入第"+(i+1)+"学生姓名:");
stu[i].setName(scan.next());
System.out.println("请输入该学生成绩:");
stu[i].setScore(scan.nextInt());
}
Arrays.sort(stu, new Comparator() {
public int compare(Student a, Student b) {
return a.getScore() - b.getScore();
}

        public boolean equals(Object obj) {
            return obj.getClass() == this.getClass();
        }
    });

    System.out.println("最高分为:" + stu[n - 1].getScore() + ", " + stu[n - 1].getName());
    System.out.println("第二高分:" + stu[n - 2].getScore() + ", " + stu[n - 2].getName());
}

}[/code]
楼主的问题其实不是多属性排序,而是根据对象的单一属性来排序啦 =v=

http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/util/Comparator.html
换个思维……这是JAVA