Java 根据多个条件对数组排序
我有一个方法可以根据变量id对对象数组进行排序,还有name&GPA。如何对整个对象数组进行排序?我只得到id的排序,但输出时的名称是混合的。这就是我到目前为止所做的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 =
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);