Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根据多个条件对数组排序_Java_Arrays_Sorting_Object - Fatal编程技术网

Java 根据多个条件对数组排序

Java 根据多个条件对数组排序,java,arrays,sorting,object,Java,Arrays,Sorting,Object,我有一个方法可以根据变量id对对象数组进行排序,还有name&GPA。如何对整个对象数组进行排序?我只得到id的排序,但输出时的名称是混合的。这就是我到目前为止所做的 private Student[] st; private int count; public ProcessStudents() { st = new Student[5]; count = 0; public void sortAscendingID() { for (int n =

我有一个方法可以根据变量id对对象数组进行排序,还有name&GPA。如何对整个对象数组进行排序?我只得到id的排序,但输出时的名称是混合的。这就是我到目前为止所做的

private Student[] st;
private int count;

public ProcessStudents() {
    st = new Student[5];
    count = 0;

    public void sortAscendingID() {
        for (int n = 0; n < count - 1; n++) {
            int min = st[n].getId();
            int index = n;
            for (int o = n + 1; o < count; o++) {
                if (st[o].getId() < min) {
                    min = st[o].getId();
                    index = o;
                }
            }
            if (st[n].getId() > min) {
                int p = st[n].getId();
                st[n].setId(min);
                st[index].setId(p);
            }
        }
    }
}
私立学生[]st;
私人整数计数;
公立学校学生(){
st=新生[5];
计数=0;
公共无效sortAscendingID(){
对于(int n=0;nmin){
int p=st[n].getId();
st[n].setId(min);
st[index].setId(p);
}
}
}
}

如果我在为生产系统编写代码,而不是说作业或其他什么,我会这样做:

List<Student> list = new ArrayList<Student>(Arrays.asList(st)); 
Collections.sort(list);
List List=newarraylist(Arrays.asList(st));
集合。排序(列表);

将实现Comparable并覆盖其方法:

@Override
public int compareTo(Object arg0) {
    // return -1, 0 or 1 depending on compared fields.
    // if(this.GetId()>((Student)arg0).GetId())
    // ...
    return 0;
}


... 

Collections.sort(collectionOfStudentObjects);