solved s3 ex3

This commit is contained in:
navid.sassan 2020-10-11 17:55:15 +02:00
parent a7b28895ba
commit 626f0d1bee
2 changed files with 27 additions and 1 deletions

View File

@ -2,8 +2,11 @@ package ch.zhaw.ads;
import java.util.*; import java.util.*;
import java.text.*; import java.text.*;
import java.lang.Comparable;
import java.lang.Integer;
import java.lang.Long;
public class Competitor { public class Competitor implements Comparable<Competitor> {
private String name; private String name;
private String country; private String country;
private long time; private long time;
@ -55,4 +58,17 @@ public class Competitor {
return sb.toString(); return sb.toString();
} }
@Override
public int compareTo(Competitor other) {
if (this.equals(other)) {
return 0;
}
return new Long(this.getTime()).compareTo(new Long(other.getTime()));
}
public boolean equals(Competitor other) {
return this.getName().equals(other.getName())
&& new Integer(this.getJg()).equals(new Integer(other.getJg()))
&& new Long(this.getTime()).equals(new Long(other.getTime()));
}
} }

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.text.ParseException; import java.text.ParseException;
import java.lang.ArrayIndexOutOfBoundsException; import java.lang.ArrayIndexOutOfBoundsException;
import java.util.Collections;
public class RankingServer implements CommandExecutor { public class RankingServer implements CommandExecutor {
List<Competitor> competitors; List<Competitor> competitors;
@ -17,6 +18,15 @@ public class RankingServer implements CommandExecutor {
for (Competitor competitor : competitors) { for (Competitor competitor : competitors) {
result.append(competitor.toString() + "\n"); result.append(competitor.toString() + "\n");
} }
Collections.sort(competitors);
result.append("\n\nSorted Competitors (by time):\n");
// set the ranks and append to output
for (int i = 0; i < competitors.size(); i++) {
Competitor competitor = competitors.get(i);
competitor.setRank(i + 1);
result.append(competitor.toString() + "\n");
}
return result.toString(); return result.toString();
} }