我正在尝试对数组进行排序,但是当我尝试分配它的值时遇到问题,我该如何解决?
这是分配数组值
的方法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];
}
答案 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;
}
}
}