从方法中分配数组

时间:2015-05-19 11:03:36

标签: java arrays methods assign

我正在尝试对数组进行排序,但是当我尝试分配它的值时遇到问题,我该如何解决?

这是分配数组值

的方法
public void Sort1() {
    for (int i = 0; i < numStudent; i++) {
        x[i] = student[i].getScore(0);
    }
    int tampung;
    for (int i = 0; i < numStudent; i++) {
        for (int j = 0; j < numStudent - (i + 1); j++) {
            if (x[j] > x[j + 1]) {
                tampung = x[j];
                x[j] = x[j + 1];
                x[j + 1] = tampung;
            }
        }
    }
}

我想从这里获取数组

public int getScore(int i){
    return test[i-1];
}

3 个答案:

答案 0 :(得分:1)

只需使用Comparator的Java排序方法。 (假设你想根据他们的分数对学生进行排序)

    Arrays.sort(students, new Comparator<Student>(){
         public int compare(Student sd1, Student sd2) {
        return sd1.getScore(0).compareTo(sd2.getScore(0));
    }); 

答案 1 :(得分:0)

u' \u2013 2'

不应该将其称为

x[i] = student[i].getScore(0);

完整的代码应该是这样的。

 x[i] = student[i].getScore(i);

答案 2 :(得分:0)

简单bubble sorting检查链接,您不需要嵌套for-loop,但继续直到没有发生交换,这意味着数组处于正确的排序顺序。

while ( flag )
{
    flag = false;
    for( j=0;  j < numStudent -1;  j++ )
    {
        if ( x[ j ] > x[j+1] )   // change to < for descending sort
        {
            tampung = x[ j ];                //swap elements
            x[ j ] = x[ j+1 ];
            x[ j+1 ] = tampung;
            flag = true;
        } 
    }
}