【发布时间】:2018-06-02 22:41:24
【问题描述】:
此代码的结果是将mergedGrades 移动到一个sortedGrades 中,该排序基于按等级排序,然后是名称。我设法找到从最高到最低的等级,但我无法按名称对等级进行排序。请帮忙。
我的代码:
public static Grades sort(Grades mergedGrades, Grades repeat) {
Grades sortedGrades = new Grades();
while( (mergedGrades.size() > 0)){
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;
}
}
//sortedGrades.add(highest);
for(int i = 0 ; i < mergedGrades.size(); i++){
for (int i = 0; i < repeat.size(); i++) {
if (repeat.contains(highest)) {
if(highest.getFirstName().compareTo(repeat.get(i).getFirstName()) < 0) {
if(mergedGrades.get(i).getLastName().compareTo(highest.getLastName()) < 0) {
sortedGrades.add(highest);
System.out.println("test");
}
}
}
}
sortedGrades.add(highest);
mergedGrades.remove(index);
}
结果应该是这样的:
S005: Stacy, Lu 4.0 S004: Aseef, Hernandez 3.9 S006: Aseef, Nilkund 3.9 S002: Jim, NLN 3.9 S003: Misty, Fang 3.9 S009: Steve, Calderon 3.9 S016: Aseef, Simmons 3.9 S010: Raj, Singh 3.8 S018: Hamza, Nilkund 3.5 S012: Kathy, Calderon 3.5 S017: Hifza, Nilkund 3.3 S011: Jason, Kramer 3.3 S001: John, Rodgers 3.3 S019: Chris, Peach 3.2 S013: Roopa, Singh 3.2 S020: Ramona, Luke 2.4 S014: Amid, Naveed 2.4 S015: Faith, Williams 1.0
【问题讨论】:
-
请发minimal reproducible example,包括
Grades的定义和测试数据