java循环直到对象列表为空
此代码试图将等级从最高到最低排序 我的代码:java循环直到对象列表为空,java,jquery,sorting,Java,Jquery,Sorting,此代码试图将等级从最高到最低排序 我的代码: public static Grades sort(Grades mergedGrades, Grades repeat) { Grades sortedGrades = new Grades(); Grade highComp = null; Grade highest = mergedGrades.get(0); int index = 0; for (int j = 0; j < mergedGrades.size(); j++) {
public static Grades sort(Grades mergedGrades, Grades repeat) {
Grades sortedGrades = new Grades();
Grade highComp = null;
Grade highest = mergedGrades.get(0);
int index = 0;
for (int j = 0; j < mergedGrades.size(); j++) {
highComp = mergedGrades.get(j);
if (highComp.getGpa() > highest.getGpa()) {
highest = highComp;
//debug: System.out.println("getGpa: "+highest.getGpa());
index = j;
}
}
sortedGrades.add(highest);
mergedGrades.remove(index);
公共静态等级排序(等级合并等级,等级重复){
等级分类等级=新等级();
等级highComp=null;
最高等级=合并等级。获取(0);
int指数=0;
对于(int j=0;jhighComp.getGpa()){
最高=高补偿;
//调试:System.out.println(“getGpa:+highest.getGpa());
指数=j;
}
}
sortedGrades.add(最高);
合并等级。删除(索引);
每次找到一个最高值,它都会添加到sortedGrades对象,并删除
用索引评分。但是,我不知道如何使它循环直到它为空。请教训我。谢谢
教授班:
public int size() {
return this.size;
}
public boolean contains(Grade grade) {
for(int i = 0; i < this.size; i++) {
if(this.gradeArray[i].equals(grade)) {
return true ;
}
}
return false;
}
public int size(){
返回此.size;
}
公共布尔包含(等级){
for(int i=0;i
如果要使用while循环,可以使用:
while(mergedGrades.size() > 0)
也可以使用嵌套的for循环:
int initialMergedGradesLength = mergedGrades.size()
for(int i = 0; i < initialMergedGradesLength; i++)
for(Grade mergedGrade : mergedGrades)
虽然我不确定最后一个是否会编译。根据此类:
public int size() {
return this.size;
}
public boolean contains(Grade grade) {
for(int i = 0; i < this.size; i++) {
if(this.gradeArray[i].equals(grade)) {
return true ;
}
}
return false;
}
而(!sortedGrades.isEmpty()){…}
不幸的是,这个类没有包含.isEmpty()这似乎是一种低效的排序算法。如果你可以把它们全部放入一个列表中,你可以直接排序。是的,这是一个基本的java课程。我的教授希望我们有更好的基础。这就是他为什么要我们这样做的原因。<代码>((SooDealStsix.siz())0){…} < /Cord>
public static Grades sort(Grades mergedGrades, Grades repeat) {
Grades sortedGrades = new Grades();
Grade highComp = null;
Grade highest = mergedGrades.get(0);
int index = 0;
while (mergedGrades.size() > 0) {
for (int j = 0; j < mergedGrades.size(); j++) {
highComp = mergedGrades.get(j);
if (highComp.getGpa() > highest.getGpa()) {
highest = highComp;
//debug: System.out.println("getGpa: "+highest.getGpa());
index = j;
}
}
sortedGrades.add(highest);
mergedGrades.remove(index);
}
}